春雷行动-前端技术之CSS必备知识
春雷行动-前端技术之CSS必备知识
前言
这篇文章不是教程,也不是让读者能够学会和掌握CSS,而是我的学习笔记。文章的目的是让我实践,系统的了解一下一些必备知识,仅此而已。
如果你需要这方面的知识详细学习的话,推荐你看参考的链接。内容全部来源于此。
正文
五种经典布局
1.空间居中
1 | .parent{ |
核心代码是place-items
属性,那个是它的简写形式place-items: <align-items> <justify-items>;
两者相同的话可以省略。
左上角 place-items: start;
右下角place-items: end;
2.并列式布局
并列式布局就是多个项目并列。容器设置成 Flex 布局,内容居中(justify-content
)可换行(flex-wrap
)
1 | .container{ |
项目上面只用一行flex
1 | .col{ |
flex
属性是flex-grow
、flex-shrink
、flex-basis
这三个属性的简写形式 flex: <flex-grow> <flex-shrink> <flex-basis>;
flex-basis
:项目的初始宽度。flex-grow
:指定如果有多余宽度,项目是否可以扩大。flex-shrink
:指定如果宽度不足,项目是否可以缩小。
flex: 0 1 300px;
表示项目初始宽度是300,宽度不够的话可以缩小,但是不可以扩大。flex: 1 1 300px;
,表示项目始终会占满所有宽度。
3.两栏式布局
1 | .container{ |
grid-template-columns
指定页面分成两列。第一列的宽度是minmax(150px, 25%)
,即最小宽度为150px
,最大宽度为总宽度的25%;第二列为1fr
,即所有剩余宽度。切记div作为容器,需要项目(div)。
4.三明治布局
三明治布局指的是,页面在垂直方向上,分成三部分:页眉、内容区、页脚。
1 | .container{ |
grid-template-rows是指垂直方向。head和foot都是跟随内容自动变化,中间区域为剩余大小
5.圣杯布局
圣杯布局是最常用的布局,所以被比喻为圣杯。它将页面分成五个部分,除了页眉和页脚,内容区分成左边栏、主栏、右边栏。
1 | body{ |
grid-template是grid-template-rows
和grid-template-columns
的简写,grid-template: <grid-template-rows> / <grid-template-columns>
grid-column是grid-column-start
和grid-column-end
的简写,grid-column: <start-line> / <end-line>
表示垂直第几根线。上面代码的grid-column: 1 / 4
代表从第1列到第4列。
CSS使用技巧
高度100%
有的时候,我们发现高度设置为100%不生效,这个是因为百分比相对于父元素,因为我们将所有的父元素都设置为height:100%
1 | <style> |
1 | <div class="parent"></div> |
当然使用100vh
就没有上面的问题。
文字的水平居中
1 | text-align:center; |
容器的水平居中
1 | div#container { |
先为该容器设置一个明确宽度,然后将margin的水平值设为auto即可。
文字的垂直居中
1 | height: 35px; line-height: 35px; |
如果有n行文字,那么将行高设为容器高度的n分之一即可。
容器的垂直居中
1 | <div id="big"> |
将大容器的定位为relative。将小容器定位为absolute,再将它的左上角沿y轴下移50%,最后将它margin-top上移本身高度的50%即可。
容器水平垂直居中
1 | .container{ |
margin: top right bottom left
图片宽度的自适应
1 | img {max-width: 100%} |
3D按钮
1 | div#button { |
CSS的优先性
行内样式 > id样式 > class样式 > 标签名样式
禁止文字自动换行
1 | white-space:nowrap; |