Home > Article > Web Front-end > CSS interview questions (reference)
The standard model consists of four parts:
Model distinction:
The standard phenotype refers to the box model that sets box-sizing to content-box, generally width, Height refers to the width and height of content. The IE box model refers to a box with box-sizing as border-box. The calculation of width and height is content padding border;
Special recommendation:Summary of CSS interview questions in 2020 (latest)
Inheritable styles: font-size font-family color
Not possible Inherited styles: border padding margin height width
The priority is:
transition-property:width transition-duration:1s transition-timing-function:linear transition-delay:2s
animation: animation name, time spent in one cycle, cloud curve (default ease), animation delay (default 0), the number of animation playback times (default 1), whether to play the animation in reverse (default normal), whether to pause the animation (default running)
transform: 使用于2D或3D转换的元素 transform-origin: 装换元素的位置(围绕哪个点进行装换).默认(x,y,z);
border-radius: n1 n2 n3 n4; /* n1-n4 四个值得顺序是左上角,右上角,右下角,左下角 */
Exceeds the ellipsesoverflow: hidden; white-space: nowrap; text-overflow:ellipsis;
overflow:hiden; text-overflow:ellipsis;用省略号"..."隐藏超出范围的文本 display:-webkit-box; //将对象作为弹性伸缩盒子模型显示 -webkit-line-clamp:2; //用来限制在一个块元素显示的文本的行数 -webkit-box-orient:vertical;设置弹性盒对象的子元素的排列方式
Color
Gradient
filter: 滤镜效果(透明度)
弹性布局就是flex布局
-栅格布局
栅格化布局。就是grid
一个用于页面布局的全新css3功能,flexbox可以把列表放在同一个方向(从上到下排列,从左到右),并且列表能延伸到占用可用的空间,较为复杂的布局还可以嵌套一个伸缩容器(flex container)来实现。采用flex布局的元素,成为flex容器。常规布局是基于块和内联流方向,而flex布局是基于flex布局flex-flow流可以很方便的用来做居中,能对不同屏幕大小自适应,在布局上有了比以前更加灵活的空间
移动端
.scale{ position: relative; border:none; } .scale:after{ content: ''; position: absolute; bottom: 0; background: #000; width: 100%; height: 1px; -webkit-transform: scaleY(0.5); transform: scaleY(0.5); -webkit-transform-origin: 0 0; transform-origin: 0 0; }
.wrapper{ position:relative; overflow:hidden; }
webkit-over-flow-scrolling:touch;
清浮动是为了清除使用浮动元素产生的影响。浮动的元素,高度会塌陷,而高度的塌陷使页面后面的布局不能正常显示
.clear{clear:both}
.clearfix{ zoom:1; } .clear:after{ content:'.'; height:0; clear:both; display:block; visibility:hidden; }
margin是用来隔开元素与元素的间距;padding是用来隔开元素与内容的间隔。margin是用来布局分开元素,使元素与元素互不相干;padding用于元素与内容之间的间隔,让内容与元素之间有一段间距
外边距合并指的是,当两个垂直外边距相遇时,他们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中较大者
示例:
<p class="md-warp"> <span class="md-main"></span> </p> .md-warp{ width: 400px; height: 300px; max-width: 100%; border: 1px solid #000; } .md-main{ display: block; width: 100px; height: 100px; background: #f00; }
水平居中
.md-main{ margin: 0 auto }
.md-wrap{ position:relative; } .md-main{ position:absolute; left:50%; margin-left:-50px }
有些时候元素宽度不是固定的,依然可以使用定位法实现水平居中用到css3中的transform属性中的translate
.md-warp{ position: relative; } // 注意此时md-main不设置width为100px .md-main{ position: absolute; left: 50%; -webkit-transform: translate(-50%,0); -ms-transform: translate(-50%,0); -o-transform: translate(-50%,0); transform: translate(-50%,0); }
直接使用text-align:center即可
垂直居中
和水平居中类似,只是把left:50%换成top:50%,副边距和transform属性进行对应更改即可
优点:能在各个浏览器下工作,结构简单明了,不需要增加额外的标签
.md-warp{ position: relative; } .md-main{ position: absolute; /* 核心 */ top: 50%; margin-top: -50px; }
不确定高度的时候
.md-warp{ position: relative; } .md-main{ position: absolute; top: 50%; // 注意此时md-main不设置height为100px -webkit-transform: translate(0,-50%); -ms-transform: translate(0,-50%); -o-transform: translate(0,-50%); transform: translate(0,-50%); }
需要满足两个条件:
p{ width: 400px; height: 300px; border: 1px solid #000; } span{ line-height: 300px; }
视窗单位的解决办法
让元素在视窗中居中,使用vh实现
.md-warp{ position: relative; } .md-main{ position: absolute; margin: 50vh auto 0; transform: translateY(-50%); }
Flexbox的解决方案
完成这项工作只需要两个样式,在需要水平垂直居中的父元素中设置display:flex和在水平存执居中的元素设置margin:auto
.md-wrap{ display:flex } .md-main{ display:auto }
Flexbox的实现文本的水平垂直居中同样很简单
.md-warp{ display:flex; } .md-main{ display: flex; align-items: center; justify-content: center; margin: auto; }
绝对垂直居中
.md-wrap{ position: relative; } .md-main{ position:absolute; top:0' right:0 bottom:0; left:0; margin:auto; }
最好不要使用绝对定位,因为他对整体的布局影响相当的大
相关教程推荐:CSS视频教程
The above is the detailed content of CSS interview questions (reference). For more information, please follow other related articles on the PHP Chinese website!