面试题CSS01【21-10-13】

一、CSS选择器有哪些?谈谈它们的优先级 

 

        优先级

                行内样式(1000)>id选择器(100)>class选择器(10)>标签选择器(1)/伪类

        组合方式

                后代选择器:父代 后代{属性名:属性值}

                子代选择器:父代>子代{属性名:属性值}

                群组选择器:#name1, .name2, #name div {属性名,属性值}

                伪类选择器:name:伪类

                伪元素选择器:

                                        :first-letter        选择每个元素的首字母

                                        :first-line           选择每个元素的首行

                                        :before             在每个元素的内容之前插入内容

                                        :after                在每个元素的内容之后插入内容

                                        :lang(it)            选择带有以'it'开头的lang属性值的每个元素

                通用选择器:*{属性名:属性值}

                相邻选择器:div+p,紧跟在div后的所有p

二、CSS样式有哪些特性?哪些样式能被继承,哪些不能被继承

        三大特性:样式表的层叠性、样式表的继承性、优先级

        层叠性:

                样式的覆盖

                1-当多个样式作用于同一个(同一类)标签时,样式发生冲突

                2-只有最后的代码会起效(后面的代码会层叠覆盖前面的代码)

        继承性:

                前提是包含嵌套关系

                可继承:

                        文字系列属性:   

                                font:组合字体

                                font-family:规定元素的字体系列

                                font-weight:设置字体的粗细

                                font-size:设置字体的尺寸

                                font-style:定义字体的风格

                                font-variant:偏大或偏小的字体

                        文本系列属性:
                                text-indent:文本缩进
                                text-align:文本水平
                                line-height:行高
                                word-spacing:增加或减少单词间的空白
                                letter-spacing:增加或减少字符间的空白
                                text-transform:控制文本大小写
                                direction:规定文本的书写方向
                                color:文本颜色

                        元素可见性:visibility

                        表格布局属性:

                                caption-side:定位表格标题位置

                                border-collapse:合并表格边框

                                border-spacing:设置相邻单元格的边框间的距离

                                empty-cells:单元格的边框的出现与消失

                                table-layout:表格的宽度由什么决定

                        列表属性:

                                list-style-type:文字前面的小点点样式

                                list-style-position:小点点位置

                                list-style:以上的属性可通过这属性集合

                        引用:quotes:设置嵌套引用的引号类型

                        光标:cursor:箭头可以变成需要的形状

                特殊:

                        h1-h6不能继承文字大小

                        a标签不能继承文字颜色

                无继承:

                        display

                        文本属性:vertical-align、text-decoration

                        盒子模型属性:宽高|内外边距|边框等

                        背景属性:背景图片、颜色、位置等

                        定位属性:浮动、清除浮动、定位position等

                        生成内容属性:content、counter-reset、counter-increment

                        轮廓样式属性:outline-style、outline-width、outline-color、outline

                        页面样式属性:size、page-break-before、page-break-after

        优先级

                默认样式<标签选择器<类选择器<id选择器<行内样式<!import

                0                1                10                100        1000以上

                1-继承的权重为0

                2-权重会叠加

三、简单描述px em rem的区别,除此之外,你还用过哪些度量单位?

        px

                像素。相对长度单位。是相对于显示器屏幕分辨率而言的。

        em

                相对长度单位。相当于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被设置,则相对于浏览器的默认字体尺寸(font-size).

        rem

                root em。只基于HTML根元素的字体大小

        【font-size默认为16px】

四、介绍一下CSS盒子模型

        所有HTML元素都可以看做是盒子。

        每个盒子都有边界、边框、填充、内容;每个属性都包括四个部分:上下左右。

        css 盒子模型理解 - 千与千寻* - 博客园

        盒子模型可以分为两种:

                W3C标准的盒子模型:标准盒模型

                        width和heigth指的是content的大小

                IE标准的盒子模型:怪异盒模型

                        width和heigth指的是content+border+padding的大小

 

         【注】为了保证所有浏览器使用的是同一标准,需要在页面的顶部加上DOCTYPE声明

盒模型属性       

                块级元素display:block

                        即使设置了宽度,还是独占一行

                        可以设置margin和padding

                        块级元素可以包含行内元素和块级元素,但行内元素不能包含块级元素

                行内元素display:inline

                        宽高设置对行内无效

                        水平方向的padding-left|right和margin-left|right都会产生边距效果

                        垂直方向的padding-top|bottom和margin-top|bottm不会产生边距效果

                行内块盒子display:inline-block

                        既可以设置宽高,又以行内形式显示

                可变元素

                        根据上下文语境觉得转为块级元素还是行内元素

                         <button> //按钮

                         <del> // 定义文档中已被删除的文本

                         <iframe> //创建包含另外一个文档的内联框架(即行内框架)

                         <ins> //标签定义已经被插入文档中的文本

                         <map> //客户端图像映射(即热区) 6

                        <object> //object对象

                         <script> //客户端脚本

五、谈谈你对BFC的理解

        10 分钟理解 BFC 原理 - 知乎

        BFC即Block Formatting Contexts(块级格式化上下文),具有BFC特性的元素可以看作是隔离了的独立容器,容器里面的元素不会在布局上影响到外面的元素,并且BFC具有普通容器所没有的一些特性。

        满足下面任一条件即可触发BFC特性

                body根元素

                浮动:float除none以外的值

                绝对定位元素:position(absolute fixed)

                display为inline-block  table-cells  flex

                overflow除visible以外的值(hidden  auto  scroll)

六、常用清除浮动的方式(至少2种),各自有什么特点

        清除浮动主要是为了解决,父元素因为子元素浮动引起的内部高度为0的问题

        参考链接

        清除浮动的最常用的四种方法,以及优缺点_h_qingyi的博客-CSDN博客_清除浮动

        清除浮动的五种方法_朝阳39的博客-CSDN博客

        CSS的浮动及清除浮动的5种方法_web前端开发-CSDN博客

        css清除浮动方法大全_且听风吟-CSDN博客

        关于overflow:auto | hidden清除浮动的一些问题_zamamiro的博客-CSDN博客

        省流:

                最常用的是给父元素设定width,然后overflow:hidden|auto,但不能再使用position

                最推荐的是伪类::after+zoom

                .box{zoom:1}

                .box::after{content:"",display:block;height:0;clear:both;visibility:hidden;}

                此外还有一种 在子元素的最后额外再加一个元素如div如br 然后把它clear:both(不推荐)

七、页面导入样式时,使用link和@import有什么区别

        link              

                <head>

                        <link rel="stylesheet" type="text/css" href="style.css">

                </head>

        @import

                <style>

                        @import url(style.css);

                </style>

页面导入样式时,使用link和@import有什么区别?_luuu7的博客-CSDN博客

        省流:

        1、link除了可以加载css外,还可以做其他的例如RSS,定义rel连接属性等,@import只能加载css;

        2、link会在页面加载时就加载,@import等到页面全部被加载完再被加载;

        3、@import只有在IE5以上的版本才能使用

        4、js控制dom改变样式时只能使用link,因为@import不是dom可以控制的。

八、如何清除img标签底部的留白

       由于img元素默认为inline元素,而inline元素的vertical-align属性的默认值为baseline文字基线对齐,正好图片底部的留白就是baseline和bottom之间的距离,一般是4px像素。

        最常用的解决办法:display:block

        img 图像底部留白的原因以及解决方法 - 黑夜丶vn - 博客园

九、实现三个DIV等分排在一起

        display:inline|block|flex|none|table-cell

        <div class='table-cell></div>

        css 实现三个 div 等分排在一行_且听风吟的博客-CSDN博客_css一行三个

十、编写 JS 方法,把两个数组合并,并删除第二个元素

        JavaScript 字符串方法

slice(),splice(),split(),substring(),substr()使用方法和区别_前端技术的学习整理-CSDN博客_slice splice

         数组五种查询条件方法(find、findindex、indexOf、lastindexOf 、includes)_gs981600308的博客-CSDN博客_数组查找方法

 Location search 属性 | 菜鸟教程

        concat().splice(1,1)

        [..., ...].splice(1,1)

        var arr = location.search.search.substring(1).split('&');

        URLSearchParams

        

        location.search

        var searchParams = new URLSearchParams(location.search);

        searchParams.get('cat')

        searchParams.get('ev')

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值