CSS布局

常用居中法:

居中在布局中很常见,我们假设DOM文档结构如下,子元素要在父元素中居中:

<div class="parent">

        <div class = "children"></div>

</div>

1.水平居中

    子元素为行内元素还是块状元素,宽度一定还是宽度未定,采取的布局方案不同。

行内元素:对父元素设置text-align:center;

定宽块状元素: 设置左右margin值为auto;

不定宽块状元素: 设置子元素为display:inline,然后在父元素上text-align:center;

2.垂直居中

    垂直居中对于子元素是单行内联文本、多行内联文本以及块状元素采用的方案是不同的。

垂直居中对于子元素是单行内联文本、多行内联文本以及块状元素采用的方案是不同的。

父元素一定,子元素为单行内联文本:设置父元素的height等于行高line-height

父元素一定,子元素为多行内联文本:设置父元素的display:table-cell或inline-block,再设置vertical-align:middle;

块状元素:设置子元素position:absolute 并设置marigin:auto

左中右和左右布局

<div class="content">

        <div class="left"></div>

      <div class="right"></div>

      <div class="main"></div>

</div>

1. float+margin

布局步骤:

 1.对两边侧栏分别设置宽度,并对左侧栏添加左浮动,对右侧栏添加有浮动。

  2.对主面板设置左右外边距,margin-left的值为左侧栏的宽度,margin-right的值为右侧栏的宽度。

.left { float:left;  width:100px;}

.right{ float:right; width:200px; }

.main{ margin-left:100px; margin-right:200px;}

注意DOM文档的书写顺序,先写两侧栏,再写主面板,更换后则侧栏会被挤到下一列.这个布局会先渲染左右两列,然后才是main。

左右布局的实现方法

如果是左边带有侧栏的二栏布局,则去掉右侧栏,不要设置主面板的margin-right值,其他操作相同。反之亦然。

2.  position+margin

布局步骤:

1.对两边侧栏分别设置宽度,设置定位方式为绝对定位。

2.设置两侧栏的top值都为0,设置左侧栏的left值为0, 右侧栏的right值为0。

3.对主面板设置左右外边距,margin-left的值为左侧栏的宽度,margin-right的值为右侧栏的宽度。

.left,.right { position:absolute;top:0;width:200px;}

.left{ left:0;}

.right{right:0;}

.main{ margin:0 200px;}

本方法不限制DOM书写顺序,先写主面板会使主面板部分优先渲染(一般主面板会比侧栏内容重要)。

与上一种方法相比,本种方法是通过定位来实现侧栏的位置固定。

如果中间栏含有最小宽度限制,或是含有宽度的内部元素,则浏览器窗口小到一定程度,主面板与侧栏会发生重叠。

左右布局的实现方法

如果是左边带有侧栏的二栏布局,则去掉右侧栏,不要设置主面板的margin-right值,其他操作相同。反之亦然。

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

推荐阅读更多精彩内容

  • CSS布局 布局是CSS中一个重要部分,本文总结了CSS布局中的常用技巧,包括常用的水平居中、垂直居中方法,以及单...
    web前端学习阅读 1,641评论 1 38
  • 目录 常用居中垂直居中水平居中垂直水平居中 单列布局 双列&三列布局 常用居中 垂直居中 单行文本垂直居中 图片垂...
    听城阅读 460评论 1 2
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,839评论 1 92
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 4,598评论 5 15
  • 前言 温馨提示:本文较长,图片较多,本来是想写一篇 CSS 布局方式的,但是奈何 CSS 布局方式种类太多并且实现...
    sunshine小小倩阅读 3,193评论 0 59