實際開發過程當中會遇到一些須要用CSS小技巧處理的佈局問題,如今分享幾個我的工做中遇到的小問題和解決方案。css
這裏要介紹一個神器font-size:0。 若是你寫了個列表,由於元素節點有文本節點,在縮進代碼時會佔據寬度,好比:html
<ul>
<li>我是第一項</li>
<li>我是第二項</li>
<li>我是第三項</li>
<li>我是第四項</li>
</ul>
複製代碼
設置了CSScss3
<style>
ul {
list-style: none;
}
li {
width: 25%;
display: inline-block;
background: green;
text-align: center;
height: 40px;
line-height: 40px;
}
</style>
複製代碼
就會發現 git
咱們爲了頁面代碼的整潔可讀性,每每會設置一些適當的縮進、換行,但當元素的display爲inline或者inline-block的時候,這些縮進、換行就會產生空白,因此出現上述問題。雖然還有其餘方法能解決咱們由於縮進、換行而產生的問題,但此時,最合適的方法就是給li的父級ul設置 font-size: 0, 給li設置 font-size: 16px,如此就達到了所需效果圖片間的間隙問題也是由於換行、縮進。github
<div>
<img src="pic1.jpg">
<img src="pic2.jpg">
</div>
複製代碼
如上,圖片出現間隙後,在div設置font-size:0,間隙就會消失。web
在作項目時遇到輪播圖的圖片從某服務器獲取的狀況,但圖片大小比例倒是不定的,這種狀況該如何保證圖片按比例顯示?或者在移動端場景下,如何作圖片的響應性佈局?chrome
在CSS3中,可以使用background-size
來解決針對響應性佈局的背景圖片自適應。瀏覽器
IE9+, Firefox4+, opera, chrome, safari5+
background-size: length | percentage | cover | contain
length
該屬性值是設置背景圖像的寬度和高度的,第一個值是寬度,第二個值是設置高度的。若是隻設置第一個值,那麼第二個值會自動轉換爲 「auto」;調整圖片到指定大小;percentage
該屬性是以父元素的百分比來設置圖片的寬度和高度的,第一個值是寬度,第二個值是高度。若是隻設置一個值,那麼第二個值會被設置爲 「auto」;調整圖片到指定大小,百分比相對於包含元素的尺寸。cover
把背景圖像擴展至足夠大,以使背景圖像徹底覆蓋背景區域。擴展圖片來填滿元素(保持像素的長寬比);contain
把圖像擴展至最大尺寸,以使寬度和高度徹底適應內容區域。 縮小圖片來適應元素的尺寸(保持像素的長寬比)那到底是怎麼使用的呢?舉個🌰bash
// html部分
<div class="bsize1"></div>
// CSS部分
.bsize1 {
position: relative;
width: 28%;
height: 0;
padding-bottom: 17.5%;
overflow: hidden;
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
border: 1px solid #e2e5e7 !important;
}
複製代碼
單行文本溢出服務器
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
複製代碼
多行文本溢出
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
複製代碼
-webkit-line-clamp
用來限制在一個塊元素顯示的文本的行數。 爲了實現該效果,它須要組合其餘的WebKit屬性。常見結合屬性: display: -webkit-box;
必須結合的屬性 ,將對象做爲彈性伸縮盒子模型顯示 。 -webkit-box-orient
必須結合的屬性 ,設置或檢索伸縮盒對象的子元素的排列方式 。
總體高度自適應佈局怎麼實現?在講calc()以前先說一下vh和vw:
vw 相對於視口的寬度。視口被均分爲100單位的vw
vh 相對於視口的高度。視口被均分爲100單位的vh
vmax 相對於視口的寬度或高度中較大的那個。其中最大的那個被均分爲100單位的vmax
vmin 相對於視口的寬度或高度中較小的那個。其中最小的那個被均分爲100單位的vmin
複製代碼
注意!
若是用了CSS預處理器(LESS/SCSS)會被它們先解析,這時須要禁用解析calc(~ '100vh - 64px')
原文出自本人博客:常見CSS小技巧(一)