笔试1

Front End Web Development Quiz CSS 部分问题与解答

  1. Q: CSS 属性是否区分大小写?

    ul {
        MaRGin: 10px;
    }
    

    A: 不区分。

    HTML,CSS都对大小写不敏感,但为了更好的可读性和团队协作一般都小写,而在XHTML 中元素名称和属性是必须小写的。

  1. Q: 行内(inline)元素 设置margin-topmargin-bottom 是否起作用?

    A: 不起作用。(答案是起作用,个人觉得不对。)

    html 里的元素分为替换元素(replaced element)和非替换元素(non-replaced element)。

    • 替换元素是指用作为其他内容占位符的一个元素。最典型的就是img,它只是指向一个图像文件。以及大多数表单元素也是替换,例如input等。
    • 非替换元素是指内容包含在文档中的元素。例如,如果一个段落的文本内容都放在该元素本身之内,则这个段落就是一个非替换元素。

    讨论margin-topmargin-bottom对行内元素是否起作用,则要对行内替换元素和行内非替换元素分别讨论。

    首先我们应该明确外边距可以应用到行内元素,规范中是允许的,不过由于在向一个行内非替换元素应用外边距,对行高(line-height)没有任何影响。由于外边距实际上是透明的。所以对声明margin-topmargin-bottom没有任何视觉效果。其原因就在于行内非替换元素的外边距不会改变一个元素的行高。而对于行内非替换元素的左右边距则不是这样,是有影响的。

    而为替换元素设置的外边距会影响行高,可能会使行高增加或减少,这取决于上下外边距的值。行内替换元素的左右边距与非替换元素的左右边距的作用一样。来看看demo:

    http://codepen.io/paddingme/pen/JwCDF

  2. Q: 对内联元素设置padding-toppadding-bottom是否会增加它的高度?(原题是Does setting padding-top and padding-bottom on an inline element add to its dimensions?)

    A: 答案是不会。同上题比较纠结,不太明白这里的 dimensions指的是到底是什么意思?放置一边,咱们来分析下。对于行内元素,设置左右内边距,左右内边距将是可见的。而设置上下内边距,设置背景颜色后可以看见内边距区域有增加,对于行内非替换元素,不会影响其行高,不会撑开父元素。而对于替换元素,则撑开了父元素。看下demo,更好的理解下:

    http://codepen.io/paddingme/pen/CnFpa

  3. Q: 设置pfont-size:10rem,当用户重置或拖曳浏览器窗口时,文本大小是否会也随着变化?

    A: 不会。

    rem是以html根元素中font-size的大小为基准的相对度量单位,文本的大小不会随着窗口的大小改变而改变。

  4. Q: 伪类选择器:checked将作用与input类型为radio或者checkbox,不会作用于option

    A: 不对。

    伪类选择器checked的定义很明显:

    The :checked CSS pseudo-class selector represents any radio (<input type="radio">), checkbox (<input type="checkbox">) or option (<option>in a <select>) element that is checked or toggled to an on state. The user can change this state by clicking on the element, or selecting a different value, in which case the :checked pseudo-class no longer applies to this element, but will to the relevant one.

  5. Q: 在HTML文本中,伪类:root总是指向html元素?

    A: 不是(答案中给出了是 ==||)。以下摘自知乎:root 与 html 在 CSS3 中指的是同一个元素吗?的答案:

    单指创建的根。这个根可能不是 html ,如果是片段html,没有创建根,则为片段的根。把这下面 URL 打到支持 data URL 的瀏覽器看看(Firefox, Chrome, Safari, Opera),可见一斑:

    data:application/xhtml+xml,<div xmlns="http://www.w3.org/1999/xhtml"><style>:root { background: green; } html { background: red !important; }</style></div>
    
  6. Q:translate()方法能移动一个元素在z轴上的位置?

    A: 不能。translate()方法只能改变x轴,y轴上的位移。

  1. Q: 如下代码中文本“Sausage”的颜色是?

    <ul class="shopping-list" id="awesome">
        <li><span>Milk</span></li>
        <li class="favorite" id="must-buy"><span class="highlight">Sausage</span></li>
    </ul>
    
    ul {color:red;}
    li {color:blue;}
    

    A: blue。

  2. Q: 如下代码中文本“Sausage”的颜色是?

    <ul class="shopping-list" id="awesome">
        <li><span>Milk</span></li>
        <li class="favorite" id="must-buy"><span class="highlight">Sausage</span></li>
    </ul>
    
    ul {color:red;}
    #must-buy {color:blue;}
    

    A: blue。

  3. Q: 如下代码中文本“Sausage”的颜色是?

    <ul class="shopping-list" id="awesome">
        <li><span>Milk</span></li>
        <li class="favorite" id="must-buy"><span class="highlight">Sausage</span></li>
    </ul>
    
    .shopping-list .favorite {
        color: red;
    }
    #must-buy {
        color: blue;
    }
    

    A: blue。

  4. Q: 如下代码中文本“Sausage”的颜色是?

    <ul class="shopping-list" id="awesome">
        <li><span>Milk</span></li>
        <li class="favorite" id="must-buy"><span class="highlight">Sausage</span></li>
    </ul>
    
    ul#awesome {
        color: red;
    }
    ul.shopping-list li.favorite span {
        color: blue;
    }
    

    A: blue。

  5. Q: 如下代码中文本“Sausage”的颜色是?

    <ul class="shopping-list" id="awesome">
        <li><span>Milk</span></li>
        <li class="favorite" id="must-buy"><span class="highlight">Sausage</span></li>
    </ul>
    
    ul#awesome #must-buy {
        color: red;
    }
    .favorite span {
        color: blue!important;
    }
    

    A: blue。

  6. Q: 如下代码中文本“Sausage”的颜色是?

    <ul class="shopping-list" id="awesome">
        <li><span>Milk</span></li>
        <li class="favorite" id="must-buy"><span class="highlight">Sausage</span></li>
    </ul>
    
    ul.shopping-list li .highlight {
        color: red;
    }
    ul.shopping-list li .highlight:nth-of-type(odd) {
        color: blue;
    }
    

    A: blue。

  7. Q: 如下代码中文本“Sausage”的颜色是?

    <ul class="shopping-list" id="awesome">
        <li><span>Milk</span></li>
        <li class="favorite" id="must-buy"><span class="highlight">Sausage</span></li>
    </ul>
    
    #awesome .favorite:not(#awesome) .highlight {
        color: red;
    }
    #awesome .highlight:nth-of-type(1):nth-last-of-type(1) {
        color: blue;
    }
    

    A: blue。

  8. Q:#example位置如何变化:

    <p id="example">Hello</p>
    
    #example {margin-bottom: -5px;}
    

    A: 向上移动5px。

  9. Q: #example位置如何变化:

    <p id="example">Hello</p>
    
    #example {margin-left: -5px;}
    

    A: 向左移动5px。

  10. #i-am-useless 会被浏览器加载吗?

    <div id="test1">
        <span id="test2"></span>
    </div>
    
    #i-am-useless {background-image: url('mypic.jpg');}
    

    A: 不会

  11. mypic.jpg 会被浏览器加载吗?

    <div id="test1">
        <span id="test2"></span>
    </div>
    
    #test2 {
        background-image: url('mypic.jpg');
        display: none;
    }
    

    A: 会被下载。

  12. mypic.jpg 会被浏览器加载吗?

    <div id="test1">
        <span id="test2"></span>
    </div>
    
    #test1 {
        display: none;
    }
    #test2 {
        background-image: url('mypic.jpg');
        visibility: hidden;
    }
    

    A: 不会被下载。

  1. Q: only 选择器的作用是?

    @media only screen and (max-width: 1024px) {argin: 0;}
    

    A:停止旧版本浏览器解析选择器的其余部分。

    only 用来定某种特定的媒体类型,可以用来排除不支持媒体查询的浏览器。其实only很多时候是用来对那些不支持Media Query 但却支持Media Type 的设备隐藏样式表的。其主要有:支持媒体特性(Media Queries)的设备,正常调用样式,此时就当only 不存在;对于不支持媒体特性(Media Queries)但又支持媒体类型(Media Type)的设备,这样就会不读了样式,因为其先读only 而不是screen;另外不支持Media Qqueries 的浏览器,不论是否支持only,样式都不会被采用。

  2. Q:overfloa:hidden 是否形成新的块级格式化上下文?

    <div>
        <p>I am floated</p>
        <p>So am I</p>
    </div>
    
    div {overflow: hidden;}
    p {float: left;}
    

    A:会形成。

    会触发BFC的条件有:

    • float的值不为none。
    • overflow的值不为visible。
    • display的值为table-cell, table-caption, inline-block 中的任何一个。
    • position的值不为relative 和static。
  3. Q: screen关键词是指设备物理屏幕的大小还是指浏览器的视窗?

    @media only screen and (max-width: 1024px) {margin: 0;}
    

    A: 浏览器视窗

知识点总结:

tips:根据以上考点总结下如下知识点,后期会写文章进行总结,这里只挑出重点进行解析。

  • 关于CSS选择器以及优先级的知识可查阅如下文章:

  • 如何计算优先级:

    那么你如何计算指定选择器的优先级?如果你考虑到将优先级表示为用逗号隔开的四个数字就会相当简单,比如:1, 1, 1, 1 或0, 2, 0, 1
    * 第一个数字(a)通常就是0,除非在标签上使用style属性;
    * 第二个数字(b)是该选择器上的id的数量的总和;
    * 第三个数字(c)是用在该选择器上的其它属性选择器和伪类的总和。这里包括class (.example) 和属性选择器(比如 li[id=red]);
    * 第四个数字(d)计算元素(就像table、p、div等等)和伪元素(就像:first-line等);
    * 通用选择器(*)是0优先级;
    * 如果两个选择器有同样的优先级,在样式表中后面的那个起作用。

  • 浏览器CSS匹配顺序:

    浏览器CSS匹配不是从左到右进行查找,而是从右到左进行查找。比如#divBox p span.red{color:red;},浏览器的查找顺序如下:先查找html中所有class='red'的span元素,找到后,再查找其父辈元素中是否有p元素,再判断p的父元素中是否有id为divBox的div元素,如果都存在则匹配上。浏览器从右到左进行查找的好处是为了尽早过滤掉一些无关的样式规则和元素。

  • display:nonevisibilty:hidden的区别:

    可参考:

    display:nonevisibility:hidden都是把网页上某个元素隐藏起来的功能,但两者有所区别,经过亲自实验,我发现使用`` visibility:hidden属性会使对象不可见,但该对象在网页所占的空间没有改变(看不见但摸得到),等于留出了一块空白区域,而display:none`属性会使这个对象彻底消失(看不见也摸不到)

    display:none means that the the tag in question will not appear on the page at all (although you can still interact with it through the dom). There will be no space allocated for it between the other tags. visibility:hidden means that unlike display:none, the tag is not visible, but space is allocated for it on the page. so for example:

    <span>test</span> | <span>Appropriate style in this tag</span> | <span>test</span>
    

    display:none would be:

    test | | test

    visibility:hidden would be:

    test |     | test

    In visibility:hidden the tag is rendered, it just isn't seen on the page.

  • 浏览器如何渲染,可以查阅如下文章:

  • BFC( block formatting contexts ) 块级格式上下文

  • margin,padding相关的知识可以参考查阅《CSS权威指南》
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,064评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,606评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,011评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,550评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,465评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,919评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,428评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,075评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,208评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,185评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,191评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,914评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,482评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,585评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,825评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,194评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,703评论 2 339

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,720评论 1 92
  • 转载请声明 原文链接地址 关注公众号获取更多资讯 第一部分 HTML 第一章 职业规划和前景 职业方向规划定位...
    程序员poetry阅读 16,501评论 32 459
  • FreeCodeCamp - HTML5 and CSS 发现原来在另外一台电脑学 FreeCodeCamp 的时...
    付林恒阅读 9,319评论 2 17
  • CSS基础 本文包括CSS基础知识选择器(重要!!!)继承、特殊性、层叠、重要性CSS格式化排版单位和值盒模型浮动...
    廖少少阅读 3,043评论 0 40
  • 看着这样的余淮好心疼,本机他是意气风发的高中才子,阳光帅气,无所不能,可是命运又是那么的不公平,每到命运的转折点他...
    丫头楠楠阅读 116评论 0 1