用纯DIV+CSS做一个两行两列的表格,但第二列中两行是合并的,如下面这样

html-css013

用纯DIV+CSS做一个两行两列的表格,但第二列中两行是合并的,如下面这样,第1张

上面为效果图,用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>