CSS专项

1 display:none与visibility:hidden区别

display: none不占据空间,即不在文档流中,而visibility:hidden还在文档流中。

display: none子元素不可见。visibility:hidden的子元素如果设置visibility:visible则还可以看到

2 隐藏元素的方法

参考答案
display: none;

visibility: hidden;

opacity: 0;

也可以用left: -9999px或者transform: translateX(-9999px);将元素移出视口外部。

3 css画三角形

先把高度宽度都设置为0,边框设置宽度样式,想要哪个角就把其余三个border设为透明即可。例如,我想要最上面的三角形,那就把下、左、右设为透明。

<!DOCTYPE html>  
<html>  
<head>  
    <title>test</title>  
    <style type="text/css">  
        #triangle {  
            /*1.内容区面积为0*/  
            width: 0;  
            height: 0;  
            /*2.设置边框样式*/  
            border: 10px solid;  
            border-color: transparent transparent red transparent;  
        }  
    </style>  
</head>  
<body>  
    <div id="triangle"></div>  
</body>  
</html>

4 盒模型

标准盒模型:width height只包含content
怪异盒模型:width height 包含content+padding+border
box-sizing设置 border-box 怪异盒模型
content-box 标准盒模型

5 盒模型盒子的宽度计算

题目
一个盒子,宽度设为100px,padding设为100px,整个在页面占多少px?

参考答案
盒子宽度 = width + padding + border + marign。

由于padding包括padding-left和padding-right,所以这个盒子水平占据100px + 100px × 2 = 300px。

6 两种盒模型对比

题目

在两种盒模型下获取div的宽度分别是多少?

参考答案
div的宽度指通过div.clientWidth获取的宽度,这个宽度包括content、padding和border。

标准盒模width指的是content的宽度,因此获取的宽度为200px + 10 × 2 = 220px。

怪异盒模型width包括content、border和padding,因此width是200px。

7 有哪些CSS选择器

参考答案
1、id选择器(#myid)
2、类选择器(.my-classname)
3、标签选择器(div,h1,p)
4、后代选择器(h1 p)后代选择器的祖先和后代之间用空格分割
5、相邻后代选择器(子)选择器(ul>li)
6、兄弟选择器(li~a)
7、相邻兄弟选择器(li+a)
8、属性选择器(a[rel=“external”])
9、伪类选择器(a:hover,li:nth-child)
10、伪元素选择器(::before、 ::after)
11、通配符选择器(*)

8 css优先级

优先级关系:内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器 = 伪元素选择器

9 css优先级计算

题目
判断以下选择器优先级顺序
1、#foo div
2、#foo .bar div
3、#foo~.bar div

参考答案
根据知识点中介绍,这3个选择器优先级计算结果为:
0,1,0,1
0,1,1,1
0,1,1,1
后两个优先级计算结果相同,则后出现的优先级更高

12 为什么不推荐用多层css选择器

参考答案
由于选择器的匹配需要在整个DOM树中查找节点,层级越高性能越低,因此不建议CSS选择器层级太多。

13 css选择器处理

题目
div .child p是是从左边往右边开始定位还是从右边往左边开始?为什么?

参考答案
当存在后代选择器时候,CSS选择器的匹配是从右往左的,原因是从左往右匹配的话,需要遍历DOM树,可能会有多次回溯,而从右往左的话,先匹配所有的子节点选择器,然后向上查找,这样性能更好。

14 css居中

水平居中
行内元素的居中
父元素text-align: center;
块级元素居中
指定宽度后,设置margin: auto。
width: 100px; margin: 0 auto;

垂直居中
行内元素居中
设置line-height与height相等。
块级元素居中
● flex
● 已知高度
○ 用CSS3的新属性calc,计算top,top: calc(50% - 50px);
○ 用top + margin-top实现
position: relative;
height: 100px;
margin-top: 50%;
top: -50px;
● 未知高度:用margin-top: 50%; + translate: -50%实现

15 多列等高布局

16 元素margin合并

题目
两个兄弟盒子A在上、B在下,A margin-bottom:20px,B margin-top:30px A和B的最终距离是多少?
A和B是父子关系A在外、B在内,A margin-top:30px ,B margin-top: 20px,A和B之间的距离是多少?
边距塌陷的解决方法是什么?

参考答案
30px
30px
解决方法是触发BFC

17 BFC、IFC

BFC

BFC(block formatting context 块级格式化上下文) 布局方式的核心就是“隔离”,让满足条件的元素内部的子元素不会影响到元素外部。
BFC触发条件
1、根元素(整个页面就是一个大的BFC)
2、float 为 left / right
3、 overflow 为 hidden auto scoll
4、 display 为 inline-block table-cell table-caption flex inline-flex
5、position 为 absolute fixed
BFC功能
BFC的初衷为了解决margin塌陷,但是BFC还有其他功能
● 解决垂直、包含塌陷
● 清除浮动
● 防止普通文档流被浮动元素遮挡(可以实现两栏布局)

IFC

IFC也是一种布局规则,inline元素和inline-block符合IFC的布局规则。

  1. 框会从包含块的顶部开始,一个接一个地水平摆放。
  2. 摆放这些框时,它们在水平方向的 内外边距+边框 所占用的空间都会被考虑; 在垂直方向上,这些框可能会以不同形式来对齐: 水平的margin、padding、border有效,垂直无效。不能指定宽高;
  3. 行框的宽度是 由包含块和存在的浮动来决定; 行框的高度 由行高来决定

18 如何清除浮动

题目
为什么需要清除浮动?
如何清除浮动?
clear为什么能清除浮动?
overflow: hidden为什么能清除浮动?

参考答案
浮动的元素会造成父元素高度塌陷,因此需要清除浮动。
有3种办法:1. 在浮动元素后面增加一个元素,设置clear: both;2. 父元素设置伪元素,给伪元素设置clear: both;3. 父元素设置overflow: hidden。
设置clear的元素不受前面浮动元素影响,位置会放在浮动元素后面,因此可以把父元素撑开。
overflow: hidden让父元素形成一个BFC,所以可以清除浮动。

19 block、inline和inline-block的元素有什么差别

block 块类型。默认宽度为父元素宽度,可设置宽高,换行显示。
inline 行内元素类型。默认宽度为内容宽度,不可设置宽高,同行显示。
inline-block 默认宽度为内容宽度,可以设置宽高,同行显示。

20 display属性

CSS的display有哪些值?

inline和block的区别?

inline的元素能设置宽高、margin属性吗?
参考答案
display的属性值:
● block 块类型。默认宽度为父元素宽度,可设置宽高,换行显示。
● none 元素不显示,并从文档流中移除。
● inline 行内元素类型。默认宽度为内容宽度,不可设置宽高,同行显示。
● inline-block 默认宽度为内容宽度,可以设置宽高,同行显示。
inline元素可以设置水平的padding、margin,但不能设置垂直的padding和margin,也不能设置width和height。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值