您好,登錄后才能下訂單哦!
有哪些CSS面試題?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
標準模型由四部分組成:
模型區分:
標準表型指的是設置box-sizing為content-box的盒子模型,一般width,height指的是content的寬高。IE盒模型指的是box-sizing為border-box的盒子。寬高的計算是content+padding+border;
可繼承的樣式: font-size font-family color
不可繼承的樣式: border padding margin height width
優先級為:
transition-property:width transition-duration:1s transition-timing-function:linear transition-delay:2s
animation:動畫名稱,一個周期花費時間,云頂曲線(默認ease),動畫延遲(默認0),動畫播放次數(默認1),是否反向播放動畫(默認normal),是否暫停動畫(默認running)
transform: 使用于2D或3D轉換的元素 transform-origin: 裝換元素的位置(圍繞哪個點進行裝換).默認(x,y,z);
選擇器
陰影
box-shadow: 水平陰影的位置 垂直陰影的位置 模糊距離 陰影的大小 陰影的顏色 陰影開始的方向(默認是從里向外,設置inset就是從外往里)
border-image: 設置圖片路徑 設置邊框背景圖的分割方式 設置或檢索對象的邊框厚度 設置或檢索對象的邊框背景圖向外擴展 設置邊框圖片的平鋪方式
border-radius: n1 n2 n3 n4; /* n1-n4 四個值得順序是左上角,右上角,右下角,左下角 */
box-reflect: 方向[above-上|below-下|right-右|left-左],偏移量,遮罩圖片
word-break:normal(默認使用瀏覽器默認的換行規則)|break-all(允許在單詞內換行)|keep-all(只能在半角空格或連字符處換行)
overflow: hidden; white-space: nowrap; text-overflow:ellipsis;
overflow:hiden; text-overflow:ellipsis;用省略號"..."隱藏超出范圍的文本 display:-webkit-box; //將對象作為彈性伸縮盒子模型顯示 -webkit-line-clamp:2; //用來限制在一個塊元素顯示的文本的行數 -webkit-box-orient:vertical;設置彈性盒對象的子元素的排列方式
text-shadow: 水平陰影 垂直陰影 模糊陰影 陰影顏色
rgba(rgb顏色值,a為透明度)
線性漸變和徑向漸變
filter: 濾鏡效果(透明度)
彈性布局就是flex布局
-柵格布局
柵格化布局。就是grid
一個用于頁面布局的全新css3功能,flexbox可以把列表放在同一個方向(從上到下排列,從左到右),并且列表能延伸到占用可用的空間,較為復雜的布局還可以嵌套一個伸縮容器(flex container)來實現。采用flex布局的元素,成為flex容器。常規布局是基于塊和內聯流方向,而flex布局是基于flex布局flex-flow流可以很方便的用來做居中,能對不同屏幕大小自適應,在布局上有了比以前更加靈活的空間
移動端
.scale{ position: relative; border:none; } .scale:after{ content: ''; position: absolute; bottom: 0; background: #000; width: 100%; height: 1px; -webkit-transform: scaleY(0.5); transform: scaleY(0.5); -webkit-transform-origin: 0 0; transform-origin: 0 0; }
.wrapper{ position:relative; overflow:hidden; }
webkit-over-flow-scrolling:touch;
清浮動是為了清除使用浮動元素產生的影響。浮動的元素,高度會塌陷,而高度的塌陷使頁面后面的布局不能正常顯示
.clear{clear:both}
.clearfix{ zoom:1; } .clear:after{ content:'.'; height:0; clear:both; display:block; visibility:hidden; }
margin是用來隔開元素與元素的間距;padding是用來隔開元素與內容的間隔。margin是用來布局分開元素,使元素與元素互不相干;padding用于元素與內容之間的間隔,讓內容與元素之間有一段間距
外邊距合并指的是,當兩個垂直外邊距相遇時,他們將形成一個外邊距。合并后的外邊距的高度等于兩個發生合并的外邊距的高度中較大者
示例:
<p class="md-warp"> <span class="md-main"></span> </p> .md-warp{ width: 400px; height: 300px; max-width: 100%; border: 1px solid #000; } .md-main{ display: block; width: 100px; height: 100px; background: #f00; }
水平居中
.md-main{ margin: 0 auto }
.md-wrap{ position:relative; } .md-main{ position:absolute; left:50%; margin-left:-50px }
有些時候元素寬度不是固定的,依然可以使用定位法實現水平居中用到css3中的transform屬性中的translate
.md-warp{ position: relative; } // 注意此時md-main不設置width為100px .md-main{ position: absolute; left: 50%; -webkit-transform: translate(-50%,0); -ms-transform: translate(-50%,0); -o-transform: translate(-50%,0); transform: translate(-50%,0); }
直接使用text-align:center即可
垂直居中
和水平居中類似,只是把left:50%換成top:50%,副邊距和transform屬性進行對應更改即可
優點:能在各個瀏覽器下工作,結構簡單明了,不需要增加額外的標簽
.md-warp{ position: relative; } .md-main{ position: absolute; /* 核心 */ top: 50%; margin-top: -50px; }
不確定高度的時候
.md-warp{ position: relative; } .md-main{ position: absolute; top: 50%; // 注意此時md-main不設置height為100px -webkit-transform: translate(0,-50%); -ms-transform: translate(0,-50%); -o-transform: translate(0,-50%); transform: translate(0,-50%); }
需要滿足兩個條件:
p{ width: 400px; height: 300px; border: 1px solid #000; } span{ line-height: 300px; }
視窗單位的解決辦法
讓元素在視窗中居中,使用vh實現
.md-warp{ position: relative; } .md-main{ position: absolute; margin: 50vh auto 0; transform: translateY(-50%); }
Flexbox的解決方案
完成這項工作只需要兩個樣式,在需要水平垂直居中的父元素中設置display:flex和在水平存執居中的元素設置margin:auto
.md-wrap{ display:flex } .md-main{ display:auto }
Flexbox的實現文本的水平垂直居中同樣很簡單
.md-warp{ display:flex; } .md-main{ display: flex; align-items: center; justify-content: center; margin: auto; }
絕對垂直居中
.md-wrap{ position: relative; } .md-main{ position:absolute; top:0' right:0 bottom:0; left:0; margin:auto; }
最好不要使用絕對定位,因為他對整體的布局影響相當的大
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。