上面为效果图,用ul、li的方法详细写法:
css代码:
.demoBox {
width:204px
}
.demoBox li {
float: left
width:100px
border: 1px solid #999
}
.demoBox li.demoLi {
width: 202px
}
html代码:
<ul class="demoBox">
<li>1</li>
<li>2</li>
<li class="demoLi">3</li>
</ul>
总体思路就是利用宽度和浮动来实现,给ul一个固定的宽度,第一行显示的li平分这个宽度,后面的li因为没有位置就自动去了第二行,让它独占一行,就可以实现这个效果。
以上,希望对你有帮助。
两列布局(一侧固定宽度,一侧自适应),在工作中应该是经常使用到,可以说是前端基础了。这种两列布局的样式是我们在平时工作中非常常见的设计,同时也是面试中要求实现的高频题。很有必要掌握以备不时之需。这里总结了几种布局方式,欢迎大家补充。
修改 css 就可实现 位置调换 ,如下:
优点 : 交换 <div class="sidebar">固定</div> 、 <div class="main">自适应</div>顺序 ,实现主要内容优先加载渲染。
缺点 :absolute 定位,脱离文档流,当 sidebar 列的高度,超过 main 列的高度,会遮住下面的元素。需要给父盒子设置 overflow 属性。
也支持位置调换:
缺点 :不能实现主要内容优先加载渲染。
位置调换:
这里有一点需要注意: .sidebar 没有设置高度,会和 .container 保持一样的高度。 .container 的高度是被 .main 撑开的,也就是和 .main 高度一样。
位置调换:
这里 .main 和 .sidebar 高度不单独设置的话,也是同样的高度。
位置调换:
位置调换:
这里让 .main 成为 BFC 主要是消除 .sidebar 因 float 带来的影响,只要能让 .main 成为 BFC 就行。
此外留给大家一个思考题,还有没有其他方式呢?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
ul, li { list-style:nonepadding:0}
ul { width:500pxheight:300pxmargin:50 autobackground:#CCC }
li { float:leftheight:30pxline-height:30pxmargin-left:10pxbackground:#E6E6E6margin-bottom:10px}
.li1 { width:240px}
.li2 { width:230px}
.li3 { width:260px}
p { margin:10px auto}
</style>
</head>
<body>
<ul>
<li class="li1">第三个li宽240px</li>
<li class="li2">第三个li宽230px</li>
<li class="li3">第三个li宽260px</li>
</ul>
<p>li浮动,然后设置li款酷。上面两个li加起来宽度小于ul宽度,三个li加起来宽度大于ul宽度</p>
</body>
</html>