CSS面试题

CSS面试题

如何理解HTML语义化

HTML语义化就是在书写HTML结构时,使用HTML中具有明显语义化的标签,例如p标签、ul标签、header标签等。增加代码的可读性,让程序员与搜索引擎(SEO)更容易读懂。

块级元素和内联元素

块级元素:display: block/table,p、ul、div、h1等
内联元素:display: inline/inline-block,img、span、input、button

盒模型计算

offsetWidth =(内容宽度+内边距+边框),无外边距

margin纵向重叠

相邻元素的margin-top和margin-bottom会发生重叠,空白内容的p标签也会重叠

margin负值

margin-left和margin-top为负值,自身向左和向上移动;
margin-right和margin-bottom为负值,自身不动,右边和下面的元素向左和向上移动

BFC

position为absolute、fixed
float不为none
overflow不为visible
display为flex、inline-block

圣杯布局

双飞翼布局

flex布局画骰子

<div class="container">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
</div>

.container{
        width: 200px;
        height: 200px;
        border: 1px solid black;
        padding: 10px;

        display: flex;
        justify-content: space-between;
 }
 .item{
        width: 40px;
        height: 40px;
        background-color: #888;
        border-radius: 50%;
 }
 .item:nth-child(2){
        align-self: center;
 }
.item:nth-child(3){
        align-self: flex-end;
}

line-height继承

<body>
	<p>文字</p>
</body>
body{
	font-size: 20px;
	line-height: 20px; //此时p标签的line-height为20px
	line-height: 1.5; //此时p标签的line-height为16*1.5=24px
	line-height: 200%; //此时p标签的line-height为20*200%=40px
}
p{
	background-color: #ccc;
	font-size: 16px;
}

rem

//依据根元素font-size决定
html{
	font-size: 100px;
}
div{
	width: 2rem; //宽度为200px
}
<div>111</div>

vw/vh

window.screen.height //屏幕高度
window.innerHeight //视口高度,减去浏览器上方、下方,真正元素放置的地方
document.body.clientHeight //元素撑起的高度

1vw //网页视口宽度的1/100
1vh //网页视口高度的1/100

你可能感兴趣的:(css,前端)