摘要:字體斷行超出顯示省略號屬性設置如何處理元素內的空白默認。其行為方式類似中的標簽。某設計稿下個,橫向排布,每個的寬度為路徑名此時此時此時因此,一個的實際只有的元素的寬度在不同設備下顯示了不同的寬度,實現了響應式適配的問題。
1、字體斷行
超出顯示省略號
p{text-overflow:ellipsis;overflow:hidden;}
white-space: normal|pre|nowrap|pre-wrap|pre-line|inherit;
white-space 屬性設置如何處理元素內的空白 normal 默認。空白會被瀏覽器忽略。 pre 空白會被瀏覽器保留。其行為方式類似 HTML 中的 pre 標簽。 nowrap 文本不會換行,文本會在在同一行上繼續,直到遇到 br 標簽為止。 pre-wrap 保留空白符序列,但是正常地進行換行。 pre-line 合并空白符序列,但是保留換行符。 inherit 規定應該從父元素繼承 white-space 屬性的值。
word-wrap: normal|break-word;
word-wrap 屬性用來標明是否允許瀏覽器在單詞內進行斷句,這是為了防止當一個字符串太長而找不到它的自然斷句點時產生溢出現象。 normal: 只在允許的斷字點換行(瀏覽器保持默認處理) break-word:在長單詞或URL地址內部進行換行
word-break 屬性用來標明怎么樣進行單詞內的斷句。
normal:使用瀏覽器默認的換行規則。 break-all:允許再單詞內換行 keep-all:只能在半角空格或連字符處換行
強制不換行
span { dispalay: inline-block; overflow: hidden; /* 超出部分隱藏 */ text-overflow: ellipsis; /* 如果內容超出顯示為省略號 */ white-space: nowrap; /* 強制不換行 */ }
CSS自動換行
span { dispalay: inline-block; word-break: normal; /* 自動換行 */ }
強制斷行
span { dispalay: inline-block; word-break:break-all; /* 強制英文單詞斷行 */ }2、移動端自適應 使用媒體查詢
@media (min-width: 768px) { .main { width: 25%; float: left; } }
link rel="stylesheet" type="text/css" media="screen and (min-width: 400px) and (max-device-width: 600px)" href="smallScreen.css" />寬度使用百分比
由于網頁會根據屏幕寬度調整布局,所以盡可能的使用百分比
使用相對單位rem設計稿給什么尺寸,我們就將其縮小100倍,最后換算成rem單位。比如,設計稿上某個title的font-size為32px,此時寫CSS樣式時就直接縮小100倍,即0.32rem。
html元素的具體尺寸 = 設計稿尺寸 / 100 * (不同設備的理想視口寬度 / 基準值(即設計稿橫向像素) * 100) (單位px)
當1(單位rem) = html根元素的font-size = 不同設備的理想視口寬度 / 基準值(即設計稿橫向像素) * 100 (單位px)時,html元素的具體尺寸 = 設計稿尺寸 / 100 (單位rem)
當deviceWidth大于設計稿的橫向分辨率時,html的font-size始終等于 設置為當設備理想寬度等于設計稿橫向寬度時的值
//orientationchange方向改變事件 (function (doc, win) { var docEl = doc.documentElement,//根元素html //判斷窗口有沒有orientationchange這個方法,有就賦值給一個變量,沒有就返回resize方法。 resizeEvt = "orientationchange" in window ? "orientationchange" : "resize"; recalc = function () { var clientWidth = document.documentElement.clientWidth; if (!clientWidth) return; if(clientWidth > 1080) clientWidth = 1080; //把document的fontSize大小設置成跟窗口成一定比例的大小,從而實現響應式效果。 docEl.style.fontSize = 20 * (clientWidth / 1080) + "px"; // 1080 為UI給的設計稿橫向像素 }; if (!doc.addEventListener) return; win.addEventListener(resizeEvt, recalc, false); //addEventListener事件方法接受三個參數:第一個是事件名稱比如點擊事件onclick,第二個是要執行的函數,第三個是布爾值 doc.addEventListener("DOMContentLoaded", recalc, false)//綁定瀏覽器縮放與加載時間 })(document, window);設置視口縮放
動態設置viewport的scale
let dpr = window.devicePixelRatio; let meta = document.createElement("meta"); let initialScale = 1 / dpr; let maximumScale = 1 / dpr; let minimumScale = 1 / dpr; meta.setAttribute("name", "viewport"); meta.setAttribute("content", `width=device-width, user-scalable=no, initial-scale=${initialScale}, maximum-scale=${maximumScale}, minimum-scale=${minimumScale}`); document.head.appendChild(meta); 因此,可以直接根據設計稿的尺寸寫CSS樣式,如設計稿下有5個li元素,寬度為200px,此時不同設備下li的寬度 iPhone5 : li { width: 200px } 實際寬度為:100px iPhone6 : li { width: 200px } 實際寬度為:100px iPhone6+: li { width: 200px } 實際寬度為:66.667px
(2)動態計算html的font-size
var clientWidth = document.documentElement.clientWidth; if (!clientWidth) return; if(clientWidth > 1080) clientWidth = 1080; document.documentElement.style.fontSize = clientWidth / 10 + "px";
(3)布局的時候,各元素的css尺寸=設計稿標注尺寸/設計稿橫向分辨率/10(不方便計算),或者通過css處理器(參考如下)
SASS @baseFontSize: 75;//基于視覺稿橫屏尺寸/100得出的基準font-size @function px2rem ($value) { $para: 75px; @return $value / @baseFontSize+ rem; } JS // 設置根元素的font-size。通過獲取不同設備的理想視口寬度,再除以10。(除以10是因為不想font-size太大。) let idealViewWidth = window.screen.width; document.documentElement.style.fontSize = idealViewWidth / 10 + "px"; 在不同設備下根元素的`font-size`: iPhone5 : 320px / 10 = 32px iPhone6 : 375px / 10 = 37.5px iPhone6+: 414px / 10 = 41.4px 根據以上,可以看一個例子。某設計稿下5個li,橫向排布,每個的寬度為200px CSS @import (路徑名) iPhone5: li { width: px2rem(200px) } => width: 85.333px // 此時(200px / 75px = 2.667rem) 2.667rem = 2.667 * (320 / 10) = 85.3333px iPhone6: li { width: px2rem(200px) } => width: 100px // 此時(200px / 75px = 2.667rem) 2.667rem = 2.667 * (375 / 10) = 100px iPhone6+: li { width: px2rem(200px) } => width: 4138px // 此時(200px / 75px = 2.667rem) 2.667rem = 2.667 * (414 / 10) = 110.4138px 因此,一個200px的(實際只有100px)的li元素的寬度在不同設備下顯示了不同的寬度,實現了響應式適配的問題。3、移動端一像素邊框實現 設置視口縮放
參照 (2、移動端自適應-設置視口縮放)內容,可以像PC web頁面一樣設置1px
使用transform: scale上邊緣框
.border-top-1px { position: relative; } .border-top-1px:before { position: absolute; content: ""; -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: scaleY(0.5); transform: scaleY(0.5); top: 0; left: 0; width: 100%; border-top: 1px solid green; z-index: 10; }
下邊緣框
.border-bottom-1px { position: relative; } .border-bottom-1px:before { content: ""; position: absolute; bottom:0; left:0; width: 100%; border-bottom: 1px solid green; -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: scale(0.5, 0.5); transform: scale(0.5, 0.5); -webkit-box-sizing: border-box; box-sizing: border-box; }
四邊框
.border-1px { position: relative; } .border-1px input { position: relative; width: 100%; height: 30px; padding: 0 10px; border: none; outline: none; text-overflow: ellipsis; background: transparent; } .border-1px:before { content: ""; position: absolute; width: 200%; height: 200%; border: 1px solid #000; -webkit-transform-origin: 0 0; -moz-transform-origin: 0 0; -ms-transform-origin: 0 0; -o-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: scale(0.5, 0.5); -ms-transform: scale(0.5, 0.5); -o-transform: scale(0.5, 0.5); transform: scale(0.5, 0.5); -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
媒體查詢實現
.border-bottom{ position: relative; border-top: none !important; } .border-bottom::after { content: " "; position: absolute; left: 0; bottom: 0; width: 100%; height: 1px; background-color: #e4e4e4; -webkit-transform-origin: left bottom; transform-origin: left bottom; } /* 2倍屏 */ @media only screen and (-webkit-min-device-pixel-ratio: 2.0) { .border-bottom::after { -webkit-transform: scaleY(0.5); transform: scaleY(0.5); } } /* 3倍屏 */ @media only screen and (-webkit-min-device-pixel-ratio: 3.0) { .border-bottom::after { -webkit-transform: scaleY(0.33); transform: scaleY(0.33); } }
http://caibaojian.com/mobile-...
https://www.cnblogs.com/uncle...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/115957.html
摘要:注本文首發于個人博客學習筆記。最近看了下變量,又名自定義屬性,跟大家分享一下我的學習筆記。使用自定義屬性來設置變量名,并使用特定的來訪問。二學習筆記聲明調用聲明方式變量聲明的方式非常簡單,如下,聲明了一個名叫的變量。 注:本文首發于個人博客 《CSS Variables學習筆記》。 最近看了下CSS Variables(CSS變量,又名CSS自定義屬性),跟大家分享一下我的學習筆記。 ...
摘要:中添加同樣起作用。說明提供的命令,打包時模塊綁定的加載器為命令,監聽打包的文件,只要改變自動會打包命令窗口顯示打包進度命令窗口列出引入的所有模塊命令窗口顯示打包引入模塊的原因 標注:本筆記來自 imooc-qbaty老師-webpack深入與實戰gitbash(or CMD)進行命令操作 一、準備工作 lenovo@lenovo-PC MINGW64 ~ $ cd /d/imooc/ ...
摘要:指普通的規則,由選擇器和屬性指定構成的規則。用于跟命名空間配合的一個規則,表示內部的選擇器全都帶上特定命名空間。注意屬性不允許使用連續的兩個中劃線開頭,否則會被認為是變量。 筆記說明 重學前端是程劭非(winter)【前手機淘寶前端負責人】在極客時間開的一個專欄,每天10分鐘,重構你的前端知識體系,筆者主要整理學習過程的一些要點筆記以及感悟,完整的可以加入winter的專欄學習【原文有...
摘要:指普通的規則,由選擇器和屬性指定構成的規則。用于跟命名空間配合的一個規則,表示內部的選擇器全都帶上特定命名空間。注意屬性不允許使用連續的兩個中劃線開頭,否則會被認為是變量。 筆記說明 重學前端是程劭非(winter)【前手機淘寶前端負責人】在極客時間開的一個專欄,每天10分鐘,重構你的前端知識體系,筆者主要整理學習過程的一些要點筆記以及感悟,完整的可以加入winter的專欄學習【原文有...
摘要:指普通的規則,由選擇器和屬性指定構成的規則。用于跟命名空間配合的一個規則,表示內部的選擇器全都帶上特定命名空間。注意屬性不允許使用連續的兩個中劃線開頭,否則會被認為是變量。 筆記說明 重學前端是程劭非(winter)【前手機淘寶前端負責人】在極客時間開的一個專欄,每天10分鐘,重構你的前端知識體系,筆者主要整理學習過程的一些要點筆記以及感悟,完整的可以加入winter的專欄學習【原文有...
閱讀 2430·2021-10-11 10:57
閱讀 1279·2021-10-09 09:59
閱讀 1998·2019-08-30 15:53
閱讀 3212·2019-08-30 15:53
閱讀 1008·2019-08-30 15:45
閱讀 738·2019-08-30 15:44
閱讀 3446·2019-08-30 14:24
閱讀 954·2019-08-30 14:21