Css布局练习

双列布局,某一列自适应宽度。

若我们想做下图所示的Css布局:

自适应双列布局

需要实现的功能为,左边能够自适应宽度,右边固定。
本布局可以使用浮动+负边距来实现。
给左边元素加一个父级,同时左元素在父级元素内空出右边元素的位置。
不设定左边元素宽度,使左右两列都进行浮动,右边元素margin-left为本身的宽度。
代码为
Html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<div class="wrap">
<div class="left">我是一个自适应宽度的左边输入框,我支持自动换行不会被右边导航栏所覆盖内容。</div>
</div>
<div class="right">我是固定右边导航栏</div>
</body> </html>

Css:
body{ width:500px; margin:10px; border:dashed 1px orange; overflow:hidden; } .wrap{ width: 100%; float: left; } .left{ background: #FCD975; height: 400px; margin-right: 100px; } .right{ background: #591804; color: white; width: 100px; height: 400px; float: left; margin-left: -100px; }

3列圣杯布局

圣杯布局

利用父元素的Padding设置,为两边的元素卡出各自的位置
再利用margin负边距实现圣杯布局。
具体代码如下
html:
<!DOCTYPE html>
<html>
<head> <meta charset="utf-8"> <title>JS Bin</title> </head>
<body>
<div class="ct">
<div class="main"></div>
<div class="aside">side1</div>
<div class="extra">side2</div>
</div>
</body>
</html>

css:
.ct{ border: 1px solid; padding: 0 100px; } .ct:after{ content: ''; display: block; clear: both; } .main{ width: 100%; height: 200px; background: red; float: left; } .aside{ position: relative; left: -100px; width: 100px; height: 100px; background: blue; float: left; opacity: 0.8; margin-left: -100%; } .extra{ position:relative; width: 100px; height: 100px; background: yellow; float: left; margin-left: -100px; left: 100px; }

3列双飞翼布局

3列双飞翼布局

为中间的列元素wrap包裹一层父元素,在不给wrap设宽度的情况下,通过margin边距在父元素中分割出两边元素的空间,达到3列布局的目的。
代码如下
html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<div class="ct">
<div class="main">
<div class="wrap">ffffff</div>
</div>
<div class="aside">side1</div>
<div class="extra">side2</div>
</div>
</body>
</html>

css:
.ct{ border: 1px solid; }
.ct:after{ content: ''; display: block; clear: both; }
.main{ width: 100%; height: 200px; float: left; }
.wrap{ height: 200px; background: pink; margin-left: 100px; margin-right: 100px; }
.aside{ width: 100px; height: 100px; background: blue; float: left; margin-left: -100%; }
.extra{ width: 100px; height: 100px; background: yellow; float: left; margin-left: -100px; }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 各种纯css图标 CSS3可以实现很多漂亮的图形,我收集了32种图形,在下面列出。直接用CSS3画出这些图形,要比...
    剑残阅读 9,700评论 0 8
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,807评论 1 92
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,805评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,337评论 0 11
  • 11月9日,我们国培班全体同学非常荣幸地聆听了两位专家的精彩讲座,用心感悟了他们独道的教育智慧,受益匪浅。 其中给...
    js_mawei阅读 1,531评论 0 0