CSS——布局与定位

布局与定位是CSS学习中最重要的一块,它将贯穿你的整个前端职业生涯,这篇文章就介绍DIV+CSS的几种布局与定位方法。

布局(脱离文档流)

  1. 左右布局
  • float+clearfix
<父元素 class="clearfix">

.clearfix::after{
content:'';
display:block;
clear:both;
}

子元素{
float:left(right);
}

首先让块级元素(列表元素)浮动起来,再在其父元素上加一给clearfix类,用于清除其父元素的浮动。
接着将列表元素的宽度设为50%,那么就会自然的产生一个左右布局的效果了。

  • relative+absolate(绝对定位)
    为了制作更多复杂的布局,运用position属性是非常重要的。目前我们学了position=fixed;(相对窗口定位)和position=relative;
    position=absolate;(绝对定位-相对父元素定位)
父元素{
position=relative;
}

子元素{
position=absolate;
top: xxx px;
left: xxx px;
}

这会让子元素相对于父元素(上级第一个relative)的位置定位,接下来怎样布局都可以了。

  1. 左右中布局
    左右中布局的主要方法也是利用浮动或者绝对定位,甚至两者结合,不过是看情况实用的,主要利用的属性就是margin,和绝对定位啦。
  • float+margin
    float+margin.jpg
  • float+absolute
    float+absolute.jpg

居中

  1. 水平居中
  • margin:0 auto;
    适用于块级元素,也就是display=block;

  • text-align:center
    适用于内联元素,inline-block;,以及文字。使用方法是给该元素的父元素添加该样式(利用父元素包裹子元素)。

  • 调整padding,margin(内边距和外边距)
    直接调整外边距和内边距以达到水平居中的效果,如果不方便,可使用包裹器包裹该元素,使用包裹器代为调整。

  1. 垂直居中
  • 调整行高,line-height= xxx px;
    大多数情况下都是管用的

  • 调整padding,margin(内边距和外边距)
    直接调整外边距和内边距以达到水平居中的效果,如果不方便,可使用包裹器包裹该元素,使用包裹器代为调整。

其他
  1. 如何让内联元素产生上下位移
    由于内联元素的性质,它的margin和padding左右有效,上下却是没效果的,这时给它加上"display=inline-block"就可以产生效果了。

  2. 经常使用包裹器
    有些时候,一个div可以做到改内部样式,却做不到调整自身本身的位置。
    这时候就要在外面写个div,将其包裹起来,然后使用父元素的padding和margin来调整元素位置。

  3. 对块级元素设置inline-block会发生什么?

  • 块级元素宽度收缩
    块级元素不写宽度的情况下,默认宽100%(毕竟占据一行)。
    加入inline-block,宽度自动适合内容

  • 块级元素下方会产生空隙
    解决方法是使用vertical-align:top;来解决这个空隙。

  1. 状态机,js相关,暂时不描述

  2. box-sizing:border-box盒模型
    在计算宽度的时候,加入这个可以将接下来加入的宽度算入整体宽度中(这样就不会影响父元素,破坏左右布局了)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,268评论 1 92
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 6,464评论 2 66
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 29,065评论 1 45
  • CSS 是什么 css(Cascading Style Sheets),层叠样式表,选择器{属性:值;属性:值}h...
    崔敏嫣阅读 1,592评论 0 5
  • 我的宝宝下课了而我却要去上班了 烦烦烦
    爸Ba爸Ba阅读 191评论 0 0

友情链接更多精彩内容