搜尋
首頁web前端css教學div+css圖片清單佈局(一)

前端切圖的時候常常會遇到圖片佈局,初學者可能會比較生疏。接下來我會以3行3列的圖片列表為列子介紹兩種常用的切圖方案:

div+css图片列表布局(一)

  • float版面

  • display:inline-block🜎版面的方法

  • float佈局

非常簡單,一般我會使用ul li佈局

    
            
  • div+css圖片清單佈局(一)
  •         
  • div+css圖片清單佈局(一)
  •         
  • div+css圖片清單佈局(一)
  •         
  • div+css圖片清單佈局(一)
  •         
  • div+css圖片清單佈局(一)
  •         
  • div+css圖片清單佈局(一)
  •         
  • div+css圖片清單佈局(一)
  •         
  • div+css圖片清單佈局(一)
  •         
  • div+css圖片清單佈局(一)
  •     

然後給每個li元素定一個寬度並向左浮動。這裡每行要顯示3張圖片,那麼每張圖片的寬度可以用百分比來計算:100/3=33.3%。

li {
    list-style: none;
    float: left;
    width: 33.3%;/*三列图片排列*/
}

每個img標籤的寬度設為100%,佔滿整個li的寬度,為了防止圖片變形,高度自適應

li {
    list-style: none;
    float: left;
    width: 33.3%;/*三列图片排列*/
}

li img {
    width: 100%;
}

好了,咱們來看看效果。

怎麼跟我們想的不一樣?這時候清單是混亂的。別急,這是因為圖片的尺寸不一。如果項目中圖片的尺寸差異太大的話,建議在父元素定死一個高度,並設定超出隱藏。但如果圖片尺寸差異不大的話,建議設定height: auto;以達到高度自適應的目的。

li {
    list-style: none;
    float: left;
    width: 33.3%;/*三列图片排列*/
    height: 100px;/*当图片尺寸不一的时候,设置一个高度*/
    overflow: hidden;/*超出隐藏*/
}
div+css图片列表布局(一) 嗯~和我們的需求差不多了

這時候產品可能會要求你圖片要上下居中

li img {
    position: relative;
    width: 100%;
    top: 50%;/*li高度的一半*/
    transform: translateY(-50%); /*再向上移动自身的50%*/
}
div+css图片列表布局(一) 有的同學可能會想到用margin-top,而不是top。這裡要注意一下,margin-top和margin-bottom的百分比,一般是按容器元素的寬度而不是高度來計算的,padding同理

到這裡,一個基本的三行三列圖片佈局基本就完成了。

div+css图片列表布局(一) 但是注意了,新手可能會忽略掉的一個隱藏問題:子元素浮動之後父容器坍塌了,有時候這種特性會嚴重影響到我們的佈局。讓我們來測試一下,在ul元素的前後分別添加一個p元素

.red{
    width: 100%;
    height: 30px;
    border: 1px solid red;
}
.blue{
    width: 100%;
    height: 30px;
    border: 1px solid blue;
}    
    
<p></p>
    ...

可以看到.blue元素緊挨著.red元素了,ul元素表現得像是不存在一樣

這是因為元素浮動後後脫離了文檔流,關於浮動的原理可以參閱w3school的CSS 浮動以及CSS浮動屬性Float詳解,這裡不再贅述。清除浮動的方法有很多,這裡推薦添加:after偽元素去除浮動

.clearfix:after{
    position: relative;
    content: '';
    display: block;
    width: 0;
    height: 0;
    visibility: hidden;
    clear: both;
}

<p></p>
    ...

div+css图片列表布局(一) 再來看看效果,表現就正常了

display:inline-block佈局

div+css图片列表布局(一) 同float float: left;替換成display: inline-block;

li {
    list-style: none;
    display: inline-block;
    width: 33.3%;
    /*三列图片排列*/
    height: 100px;
    /*当图片尺寸不一的时候,需要设置一个最大高度*/
    text-align: center;
    /*内容居中*/
    overflow: hidden;
    /*超出隐藏*/
}

來看一下效果,出現了間隙,而且被擠成兩半了。怎麼回事? ~

注意,inline-block的元素之間會存在間隙,具體請參閱張鑫旭的部落格。這裡使用font-size: 0;方法清除元素間的間隙div+css图片列表布局(一)

ul {
    width: 100%;
    margin: 0 auto;
    font-size: 0;
}


這樣,我們想要的效果就完成了。是不是很簡單

div+css图片列表布局(一) 更多div+css圖片列表版面(一) 相關文章請追蹤PHP中文網!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
利用CSS怎么创建渐变色边框?5种方法分享利用CSS怎么创建渐变色边框?5种方法分享Oct 13, 2021 am 10:19 AM

利用CSS怎么创建渐变色边框?下面本篇文章给大家分享CSS实现渐变色边框的5种方法,希望对大家有所帮助!

css ul标签怎么去掉圆点css ul标签怎么去掉圆点Apr 25, 2022 pm 05:55 PM

在css中,可用list-style-type属性来去掉ul的圆点标记,语法为“ul{list-style-type:none}”;list-style-type属性可设置列表项标记的类型,当值为“none”可不定义标记,也可去除已有标记。

css与xml的区别是什么css与xml的区别是什么Apr 24, 2022 am 11:21 AM

区别是:css是层叠样式表单,是将样式信息与网页内容分离的一种标记语言,主要用来设计网页的样式,还可以对网页各元素进行格式化;xml是可扩展标记语言,是一种数据存储语言,用于使用简单的标记描述数据,将文档分成许多部件并对这些部件加以标识。

css3怎么实现鼠标隐藏效果css3怎么实现鼠标隐藏效果Apr 27, 2022 pm 05:20 PM

在css中,可以利用cursor属性实现鼠标隐藏效果,该属性用于定义鼠标指针放在一个元素边界范围内时所用的光标形状,当属性值设置为none时,就可以实现鼠标隐藏效果,语法为“元素{cursor:none}”。

css怎么实现英文小写转为大写css怎么实现英文小写转为大写Apr 25, 2022 pm 06:35 PM

转换方法:1、给英文元素添加“text-transform: uppercase;”样式,可将所有的英文字母都变成大写;2、给英文元素添加“text-transform:capitalize;”样式,可将英文文本中每个单词的首字母变为大写。

rtl在css是什么意思rtl在css是什么意思Apr 24, 2022 am 11:07 AM

在css中,rtl是“right-to-left”的缩写,是从右往左的意思,指的是内联内容从右往左依次排布,是direction属性的一个属性值;该属性规定了文本的方向和书写方向,语法为“元素{direction:rtl}”。

css怎么设置i不是斜体css怎么设置i不是斜体Apr 20, 2022 am 10:36 AM

在css中,可以利用“font-style”属性设置i元素不是斜体样式,该属性用于指定文本的字体样式,当属性值设置为“normal”时,会显示元素的标准字体样式,语法为“i元素{font-style:normal}”。

怎么设置rotate在css3的旋转中心点怎么设置rotate在css3的旋转中心点Apr 24, 2022 am 10:50 AM

在css3中,可以用“transform-origin”属性设置rotate的旋转中心点,该属性可更改转换元素的位置,第一个参数设置x轴的旋转位置,第二个参数设置y轴旋转位置,语法为“transform-origin:x轴位置 y轴位置”。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境