CSS基础知识题

①CSS3新特性?

选择器:最后一个子元素:last-child、第n个子元素:nth-child(n)、倒数第n个子元素:nth-last-child(n)

font-face特性(加载字体样式):

@font-face{

      font-family:name;

      src:url(name.eot)

}

border-radious(圆角)、shadow(阴影)、gradient(渐变属性)、transition(过渡)、animation(动画)、transform(变形)、flex(弹性布局)、media(媒体查询)、

box-sizing(盒模型定义)、Filter(滤镜)、grid(栅格布局)、rgba(颜色)等。

 

②CSS选择器?(https://www.cnblogs.com/lanleiming/p/5233335.html)

类型:

  1. ID选择器
  2. 类选择器
  3. 标签选择器
  4. 伪类选择器
  5. 基于关系的选择器
  6. 属性选择器
  7. 伪对象选择器

层叠:

开发者定义样式 > 用户自定义样式 > 浏览器默认样式

开发者三种方式:外部、内部、内联

继承:

那些属性可以继承:文本相关属性、列表相关属性、表格相关属性、其他属性(Cursor、visibility)。(http://www.cnphp.info/css-style-inheritance.html)

CSS继承是一种规则,它允许某些样式不仅应用于元素本身,还可以应用于其后代。(比如:color可继承,border不可以,字体继承是计算后的)

文本font-family、font-size、font-style、font-variant(小型大写字母)、text-align、text-indent、word-spacing、color

列表list-style、list-style-image、list-style-position、list-style-type

表格border-collapse、border-spacing、caption-side(表格标题放置方式)、table-layoute(表格布局算法)、border-spacing相邻单元格的边框间的距离(仅用于“边框分离”模式)

优先级:

选择器越详细,权重越高

id选择器 100
类选择器 10
伪类选择器 10
属性选择器 10
标签选择器 1
伪对象选择器 1
继承 0.1
通配符(*) 0

 

 

 

 

 

 

 

选择器就是你想去应用一个样式的时候去帮你选择元素。

继承性就是子元素会继承父元素的样式规则、层叠性是指多种方式插入的多种样式不冲突的前提下可以一起显示、优先级即是冲突时根据权重来应用样式。

 

③谈谈对于浏览器兼容性的理解?

浏览器的本质上是解析器,它是(X)HTML/CSS/Javascript等语言的解释执行环境,实际上,所谓的网页制作就是将设计师想要呈现的效果转化为浏览器可以理解的一系列标签,然后转化为用户可以看到的效果。2001年微软发布了XP和IE6,在当时是世界上标准执行得最高的浏览器,并且有很多私有技术和容错技术,使得顶峰市场份额达到98%。微软和W3C的分道扬镳,致使标准的相差越来越远。现在使用低版本IE浏览器的人群越来越少,而各主流浏览器新版本对于W3C标准的支持度越来越高,时间证明,W3C标准才是前端的正确方向,基于现在的形式,解决浏览器兼容问题,最应该的就是保证代码对于W3C标准的符合,代码越贴近W3C标准,所产生的兼容性问题也就越来越小,而是否考虑兼容低版本的ie浏览器以及兼容程度,在成本和形势上还是要好好考虑的。

浏览器引擎前缀分为:-webkit-,-ms-,-moz-,-o-  (少部分尚未成为标准仍然处于试验阶段的属性才需要加前缀,其目的主要是为了测试新的css3特性,通常把无前缀属性放最后)

-webkit-:主要兼容的浏览器是:谷歌的Chrome和苹果的Safari浏览器,等使用Webkit引擎的浏览器;

-ms-:主要兼容的浏览器是:微软的Internet Explorer、Edge浏览器;

-moz-:主要兼容的浏览器是:火狐以及使用Mozilla浏览器引擎的浏览器;

-o-:主要兼容的浏览器是:欧朋的Opera浏览器。

需要添加的属性比如:@keyframes、box-shadows、box-radius等 

 


④内联元素可以实现浮动么?(就是行内元素、内嵌元素、直进式元素)

CSS中,任何元素都可以浮动。被浮动的元素会脱离文档流,自动变成块级(display:inline-block也能把行内变块级)。浮动只有左右,无上下。

 

⑤CSS中content的作用?(https://blog.csdn.net/caimaomaocai/article/details/79838629)

1.css的content属性专门应用在 before/after 伪元素上,用来插入生成内容,可以在元素之前或之后,可插入文本、图像、引号。

2.最常见的应用是利用伪类清除浮动。

3.还可以结合计数器为页面插入编号

clearfloat:after {

    content:"."; //这里利用到了content属性
    clear:both;
}

content计数器:

计数功能非常强大,可以实现用js都不好实现的效果

content计数器有两个属性: counter-reset和counter-increment  ,方法(counter()/counters())

 

⑥设置文本字体时,为什么建议设置替换字体?(和设置背景图片时设置背景颜色一个道理)

一旦font-family设置的首选name字体失效,则会显示默认字体。此时如果有一个相近的备用字体,就多了一条后路,也就不会对界面产生影响了。

 

⑦简述CSS中定位机制?

position的值

描述
absolute

生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位,如果不存在这样的父元素,则依据最初的包含快。根据用户代理的不同,最初的包含块可能是画布或 HTML 元素。

元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定,也可以通过z-index进行层次分级。

(元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。)

fixed

生成固定/绝对定位的元素,相对于浏览器窗口进行定位。

元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

(元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。)

relative

生成相对定位的元素,相对于其正常位置进行定位。

因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。

(相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。元素框偏移某个距离。元素仍保持其未定位前的形状,仍保留原本所占的空间。 )

static

默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明,即上述声明无效)。

(元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。)

inherit 规定应该从父元素继承 position 属性的值。

CSS 定位属性允许你对元素进行定位。

属性描述
position 把元素放置到一个静态的、相对的、绝对的、或固定的位置中。
top 定义了一个定位元素的上外边距边界与其包含块上边界之间的偏移。
right 定义了定位元素右外边距边界与其包含块右边界之间的偏移。
bottom 定义了定位元素下外边距边界与其包含块下边界之间的偏移。
left 定义了定位元素左外边距边界与其包含块左边界之间的偏移。
overflow 设置当元素的内容溢出其区域时发生的事情。
clip 设置元素的形状。元素被剪入这个形状之中,然后显示出来。
vertical-align 设置元素的垂直对齐方式。
z-index 设置元素的堆叠顺序

 

 ⑧cellpadding与cellspacing的区别?

 cellpadding:单元格到内容之间的距离(留白)

 cellspacing:单元格之间的边距,以及table边框之间的距离

 

⑨display和visibility的区别?(https://blog.csdn.net/gongze_yan/article/details/84789160)

display:可以使用display属性定义建立布局时元素生成的显示框类型。可以让行内表现得像块级,可以让块级表现得像内联。

block:/*表现为一个块级元素(一般情况下独占一行)*/

当display被设置为block(块)时,容器中所有的元素将会被当作一个单独的块,就像<DIV>元素一样,它会在那个点被放入到页面中。(实际上你可以设置<span>的display:block,使其可以像<DIV>一样工作。

inline:/*表现为一个行级元素(一般情况下不独占一行)*/

将display设置为inline,将使其行为和元素inline一样---即使它是普通的块元素如<DIV>,它也将会被组合成像<span>那样的输出流。

none:/*元素不可见,并且不为其保留相应的位置*/

最后是display被设置:none,这时元素实际上就从页面中被移走,它下面所在的元素就会被自动跟上填充。

visibility:用来确定元素是显示还是隐藏,用visibility="visible|hidden"来表示,visible表示显示,hidden表示隐藏。当visibility被设置为"hidden"的时候,元素被隐藏,但仍占据它原来所在的位置。

visibility:visible
/*元素可见,默认值*/

visibility:hidden
/*元素不可见,但仍然为其保留相应的空间*/

visibility:collapse
/*只对table对象起作用,能移除行或列但不会影响表格的布局。如果这个值用在table以外的对象上则表现为hidden。*/

visibility:inherit
/*继承上级元素的visibility值。*/

 

⑩用css给一个元素加边框有哪些方法?

1. border: 1px solid #000; 

    border属性是一个用于设置各种单独的边界属性的简写属性 

2.outline:1px solid #000;

    outline属性是用来设置一个或多个单独的轮廓属性的简写属性

3.box-shadow:0 0 0 1px #000;

    box-shadow属性用于在元素的框架上添加阴影效果

 

⑪table-layout、border-collapse有何用途?

table-layout:设置表格是否自动调整宽高。

border-collapse:表格与单元格及单元格间的边框是否融合在一起。

 

⑫a标签的4种状态,链接标记target属性的作用?

a:link 超链接的默认样式 

a:visited 访问过的(已经看过的)链接样式 

a:hover 鼠标处于鼠标悬停状态的链接样式 

a:active 当鼠标左键按下时,被激活(就是鼠标按下去那一瞬间)的链接样式

<a> 标签的 target 属性必须跟href属性一起出现,表示将在何处打开这个链接。

_blank表示在新窗口打开被链接的文档;

self表示在相同的框架中打开被链接文档,这也是默认值;

_parent表示在父框架打开被链接文档;

_top表示在整个窗口中打开被链接文档;

framename(自命名),可在指定的框架中打开被链接文档。

 

 

 

 

 

 

 

 

posted @ 2020-03-26 15:31  AZUKI七  阅读(379)  评论(0编辑  收藏  举报