> 文档中心 > [Web 每日一练] 图文练习(4)

[Web 每日一练] 图文练习(4)

大家好,我是Nick,今天分享一篇关于如何将一张大图分解成更小的模块,并使用HTML和CSS来实现布局的文章。我们先来看一下目标图吧!

乍一看,这张图确实有点复杂,不过我们可以通过模块化思维来拆解它。我们可以把这张大图想象成一个大的div容器,里面包含四个小的div块。每个小块都有自己的背景图片和文字内容。通过这样的分层处理,整个布局就变得清晰明了啦!

注意!在布局过程中,可能会遇到高度坍塌和浮动问题哦!这些问题在前端开发中是很常见的。不过别担心,我会一步步教你怎么解决它们。

实现如下:

首先,我们需要定义一个大的容器div(称为section),设置一个固定的宽度,比如400px,并且使用overflow:hidden来防止内部元素浮动导致的布局问题。

然后是每个小块的div(item),设置宽度为180px,高度为173px,并使用float:left让它们水平排列。同时,为了保持间距,我们在item上添加了10px的margin。

接下来是每个item内部的结构:一个pic div用来显示背景图片,一个title div显示标题,还有一个bottom div用来显示价格和浏览量。

在pic div中,我们通过设置background-size:100% 100%让背景图片填满整个区域。同时,pic div内部有一个p标签用来显示文字,通过调整margin-top和text-align:right来实现文字在图片上的右下角显示。

在title div中,我们使用了文本溢出的技巧,通过overflow:hidden、text-overflow:ellipsis和white-space nowrap来使得长文本自动显示成省略号,这样既保证了布局的整洁又不会让文字溢出影响美观。

最后的bottom div同样使用了float:left来让价格和浏览量两部分左对齐和右对齐,这样整个布局就显得非常整齐美观了。

通过这样的模块化分解,我们成功地将一张复杂的大图分解成了多个简单的div块,并通过合理的CSS布局和对齐,最终实现了目标效果。

 大家好我是 Nick ,今天分享一篇比较难的图文组合,我们话不多说,直接来看实现图吧!

 乍一看感觉非常难,但是我们还是运用模块化的思维,来对图片做切割。我们可以将一张大的图片看成一个 div ,大的 div 里有小的四个 div ,小的 div 里面有背景图片、和字体,我们对它在细化,整个图片就完成了;

注意:高度坍塌和浮动问题哦!图片上的文字可以用背景图解决哦!。

实现:

<!DOCTYPE html><html lang="en"><head>   <meta charset="UTF-8">   <meta http-equiv="X-UA-Compatible" content="IE=edge">   <meta name="viewport" content="width=device-width, initial-scale=1.0">   <title>Document</title>   <style>*{    margin: 0;    padding: 0;    list-style: none;}.section{    width: 400px;    overflow: hidden;}.item{    width: 180px;    height: 173px;    float: left;    margin: 10px;}.item .pic{    height: 101px;    background-size: 100% 100%;    overflow: hidden;}.item .pic p{    color: white;    font-size: 14px;    height: 21px;    line-height: 21px;    margin-top: 80px;    margin-right: 5px;    text-align: right;}.item .title{    font-size: 18px;    height: 40px;    line-height: 40px;    /* 一下三行会让文本出现省略号 */    overflow: hidden;    text-overflow: ellipsis;    white-space: nowrap;}.item .bottom{    overflow: hidden;}.item .bottom span{    float: left;    width: 50%;    height: 30px;    line-height: 30px;}.item .bottom .money{    font-size: 16px;    color: #ff6050;}.item .bottom .looks{    text-align: right;    font-size: 14px;    color: #a5a7b4;}   </style>