每日两道前端面试题 - 20190202

栏目: Html · 发布时间: 5年前

内容简介:它们的定义1.块级元素:每个块级元素默认占一行高度,若有块级元素则同行无法再添加其他元素(float浮动除外)特点:

块级元素与行内元素,怎么用CSS控制它们、以及如何合理的使用它们

它们的定义

1.块级元素:每个块级元素默认占一行高度,若有块级元素则同行无法再添加其他元素(float浮动除外)

特点:

高度行高以及外边距内边距都可控制

宽度默认100%

可以容纳内联元素及块元素

2.行内元素:可以和其他元素都在一行上.

特点:

宽度就是它的文本或图片的宽度,不可改变

内联元素只能容纳文本或者其他的内联元素

设置宽度width无效

设置高度height无效,可通过line-height来设置

设置margin只有左右有效,上下无效

设置padding只有左右padding有效,上下无效

3.行内块状元素:综合了行内元素与块状元素的特性,但是各有取舍

特点:

不自动换行

能够识别宽高

默认排列方式从左到右

4.块级元素有哪些:

div | dl(定义列表) | h1(h开头系列) | hr | menu | ol | p | table | ul

5.行内元素有哪些:

a | b | br | em | i | img | input | label | select | span | strong

sub | textarea | u

6.行内块状元素有哪些:

button | del | iframe | ins | map | object

块级元素与行内元素,怎么用CSS控制它们、以及如何合理的使用它们,通俗讲解

1.首先要知道,div是块级元素,在页面中独占一行,自上而下排列,也是传说中的流

每日两道前端面试题 - 20190202

由此可以看出,即使div1的宽度很小,页面中一行可以容下div1和div2,div2也不会排在div1后面,显然标准流已

经法满足需求,这就要用到浮动

浮动可以理解为让某个div元素脱离标准流,漂浮在标准流之上,和标准流不是一个层次。

假设上图中的div2浮动,那么它将脱离标准流,但是div1,div3,div4仍然在标准流当中所以div3会自动向上移动,占据div2的位置,重新组成一个流。

每日两道前端面试题 - 20190202

从图中可以看出,div2不再属于标准流,div3自动上移顶替div2的位置,div1,div3,div4依次排列,成为新的流,又因为浮动是漂浮在标准流上面的,所以div2挡住了一部分的div3,所以div3看起来变矮了。

如果把div2右浮动,我们看的是这个效果:

每日两道前端面试题 - 20190202

下面我们把div2和div3都加上左浮动,效果如图:

每日两道前端面试题 - 20190202

同理,由于div2,div3浮动之后,div3会跟随在div2之后,但是从以上的每个例子中,div2都是浮动的,但是却没有跟在div1之后,因此可以得到一个重要结论:

div元素A是浮动的,如果A元素上一个元素也是浮动的,那么A元素会跟随在上一个元素的后边(若是一行放不下的情况,则会被挤到下一行);如果A元素上一个元素是标准流中的元素,那么A的相对垂直位置不会改变,也就是说A的顶部是和上一个元素的底部对齐。

假如我们把div2,和div4左浮动,效果图如下:

每日两道前端面试题 - 20190202

结论依然是:div2,div4浮动,脱离了标准流,因此div3将会自动上移,与div1组成标准流。div2发现上一个元素是标准流的元素,因此div2相对垂直位置不变,与div1底部对刘。div4发现上一个元素div3也是标准流中的元素,因此div4的顶部与div3的底部对齐。

恭喜你已经掌握了添加浮动.

现在我们来聊一下清除浮动,有上边的基础清除浮动非常理解

语法:clear: none | left | right | both

none:允许两边都有可以有浮动对象

left:不允许左边有浮动对象

right:不允许右边有浮动对象

both:不允许有浮动对象

根据上边的基础,假如页面中只有两个元素div1,div2,他们都是左浮动,场景如下:

每日两道前端面试题 - 20190202

这时候使用清除浮动,根据官方定义,读者可能会尝试这样写,在div1中的样式中添加clear:right,理解为不允许div1的右边有浮动元素,由于div2是浮动元素,因此会自动下移一行来满足规则。

其实这种理解是不正确的,这样做没有任何效果。

对于CSS的清除浮动(clear),一定要牢记:这个规则只能影响使用清除的元素本身,不能影响其他元素。

怎么理解呢?就拿上边的例子来说,我们是想让div2移动,但我们却是在div1元素的CSS样式中使用了清除浮动,试图通过清除div1右边的浮动元素 (clear:right;)来强迫div2下移,这是不可行的,因为这个清除浮动是在div1中调用的,它只能影响div1,不能影响div2。

根据定论,要想让div2下移,就必须在div2的CSS样式中使用浮动。本例中div2的左边有浮动元素div1,因此只要在div2的CSS样式中使用clear:left;来指定div2元素左边不允许出现浮动元素,这样div2就被迫下移一行。

对于右浮动也亦是如此。

参考: http://www.cnblogs.com/iyangy...


以上所述就是小编给大家介绍的《每日两道前端面试题 - 20190202》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

认知与设计

认知与设计

Jeff Johnson / 张一宁 / 人民邮电出版社 / 2011-9-1 / 59.00元

本书语言清晰明了,将设计准则与其核心的认知学和感知科学高度统一起来,使得设计准则更容易地在具体环境中得到应用。涵盖了交互计算机系统设计的方方面面,为交互系统设计提供了支持工程方法。不仅如此,这也是一本人类行为原理的入门书。一起来看看 《认知与设计》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

html转js在线工具
html转js在线工具

html转js在线工具