css布局

1.左右布局:


1.png

如果要对上图中的div.all中的div.left和div.right进行左右布局,我们可以通过在css中对应的选择器添加float:left来实现效果如下:


2.png

我们可以看到,虽然footer在all的外部,却没位于底端,因为all内部子元素为float,导致all并没有被撑开(图中根本没有红色元素显示出来)。我们可以对all添加clearfix来解决这一问题;


3.png

2.左中右布局;

方法1:同上我们可以用float来实现左中右布局:
4.png

我们对.left和.main进行左浮,对.ringht 进行右浮;可以使用width百分比来调节宽度。
方法二:使用绝对定位进行左中右布局;


5.png

对all我们设置position: relative;对于三个需要布局的块使用:position: absolute;
此时左边,右边,中间就相对于all绝对定位,然后设置left,top进行位置调整;

3.水平居中

(1)行内元素的居中
常见的行内元素有span img等,对这些元素居中设置,只需要在父元素的css中添加text-align:center即可。同样它也对行内块元素也是有效的。
但是,有个缺点,由于text-align是可继承属性,即父元素内部的所有元素都会继承这个属性,从而它的子元素内部的文本都会居中显示了。因此需要对子元素的文本居中方式单独设定。
(2)块级元素的居中
若子元素的宽度是已知的,那么我们可以设置子元素的左右margin为auto即可;


6.png

4.垂直居中
Vertical-Align
切记 vertical-align 只对 table-cell 以及 inline-element 起作用,vertical-align 的值是相对于其父元素的,父元素必须是行内元素。
vertical-align 对于块级元素不起作用,例如我们无法用它去垂直居中一个div中的p元素,因此这个方法通常不是垂直居中的最优选择。


7.png

使用Vertical-Align:middle;需要定义父级元素行高;

设置上下padding相等来实现垂直居中;

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

推荐阅读更多精彩内容

  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 10,141评论 5 15
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,686评论 1 92
  • 前言 温馨提示:本文较长,图片较多,本来是想写一篇 CSS 布局方式的,但是奈何 CSS 布局方式种类太多并且实现...
    sunshine小小倩阅读 8,347评论 0 59
  • 前端布局非常重要的一环就是页面框架的搭建,也是最基础的一环。在页面框架的搭建之中,又有居中布局、多列布局以及全局布...
    一个敲代码的前端妹子阅读 4,218评论 0 12
  • CSS布局解决方案(终结版) 前端布局非常重要的一环就是页面框架的搭建,也是最基础的一环。在页面框架的搭建之中,又...
    杀个程序猿祭天阅读 3,641评论 0 2