css基础知识2

作者: 66dong66 | 来源:发表于2017-03-13 13:42 被阅读0次

    1. 块级元素和行内元素分别有哪些?空(void)元素有那些?

    行内元素有:

    span img input select strong

    块元素有:

    div ul ol li dl dt dd h1 h2 h3 h4…p

    知名的空元素:

    <br> <hr> <img> <input> <link> <meta>

    2. 在标准文档流里面块级元素和行内元素的区别

    块级元素具有以下特点:
    1. 总是在新行上开始,占据一整行;
    2. 高度,行高以及外边距和内边距都可控制; 3. 宽带始终是与浏览器宽度一样,与内容无关;
    3. 它可以容纳内联元素和其他块元素
    行内元素的特点:
    1. 和其他元素都在一行上;
    2. 高,行高及外边距和内边距部分可改变;
    3. 宽度只与内容有关;
    4. 行内元素只能容纳文本或者其他行内元素。 不可以设置宽高,其宽度随着内容增加,高度随字体大小而改变,
      内联元素可以设置外边界,但是外边界不对上下起作用,只能对左右起作用,也可以设置内边界,但是内边界在ie6中不对上下起作用,只能对左右起作用

    3. 什么是 CSS 继承? 哪些属性能继承,哪些不能?

    概述

    每个 CSS 属性定义 的概述都指出了这个属性是默认继承的 ("Inherited: Yes") 还是默认不继承的 ("Inherited: no")。这决定了当你没有为元素的属性指定值时该如何计算值

    继承属性

    当元素的一个 继承属性 (inherited property 没有指定值时,则取父元素的同属性的 计算值 computed value 。只有文档根元素取该属性的概述中给定的初始值initial value

    所有元素可继承:visibility 和 cursor

    内联元素可继承:

    letter-spacing、word-spacing、white-space、line-height、color、font、font-family、font-size、font-style、font-variant、font-weight、text-decoration、text-transform、direction

    终端块状元素可继承:text-indent 和 text-align

    列表元素可继承:

    list-style、list-style-type、list-style-position、list-style-image

    不可继承的:

    display、margin、border、padding、background、height、min-height、max-height、width、min-width、max-width、overflow、position、left、right、top、bottom、z-index、float、clear、table-layout、vertical-align、page-break-after、page-bread-before和unicode-bidi

    4. 如何让块级元素水平居中?如何让行内元素水平居中?

    1. CSS设置行内元素的水平居中

    div{text-align:center} /*DIV内的行内元素均会水平居中*/`
    

    2. CSS设置行内元素的垂直居中

    div{height:30px; line-height:30px} /*DIV内的行内元素均会垂直居中*/ 
    

    3. 既要水平居中又要垂直居中

    div{text-align:center; height:30px; line-height:30px}
    

    4. CSS设置块级元素的水平居中

    div p{margin:0 auto; width:500px} /*块级元素p一定要设置宽度,
    才能相当于DIV父容器水平居中*/ 
    

    5. CSS设置块级元素的垂直居中

    div{width:500px} /*DIV父容器设置宽度*/ 
    div p{margin:0 aut0; height:30px; line-height:30px} /*块级元素p也可以加个宽度,
    以达到相对于DIV父容器的水平居中效果*
    

    5. 用 CSS 实现一个三角形

    三角形

    6. 单行文本溢出加 ...如何实现?

    ell{
      width:100px;//必须有宽度
      overflow: hidden;//超出隐藏
      text-overflow: ellipsis;//显示省略符号来代表被修剪的文本
      white-space: nowrap;//不换行
    }
    

    7. px, em, rem 有什么区别

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

    px特点
    1. IE无法调整那些使用px作为单位的字体大小;

    2. 国外的大部分网站能够调整的原因在于其使用了em或rem作为字体单位;

    3. Firefox能够调整px和em,rem,但是96%以上的中国网民使用IE浏览器(或内核)。

    em 指字体高,任意浏览器的默认字体高都是16px。所以未经调整的浏览器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em。为了简化font -size的换算,需要在css中的body选择器中声明Font-size=62.5%,这就使em值变为16px*62.5%=10px, 这样12px=1.2em, 10px=1em, 也就是说只需要将你的原来的px数值除以10,然后换上em作为单位就行了。

    em特点
    1. em的值并不是固定的;
    2. em会继承父级元素的字体大小。。

    rem是CSS3新增的一个相对单位(root em,根em),这个单位引起了广泛关注。这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。目前,除了IE8及更早版本外,所有浏览器均已支持rem。对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略用rem设定的字体大小。

    8. IE 盒模型和W3C盒模型有什么区别?

    content-box(标准盒模型/W3C盒模型)

    width = 内容的宽度
    height = 内容的高度

    border-box(怪异盒模型/IE 盒模型)

    width = border + padding + 内容的宽度
    height = border + padding + 内容的高度

    9. *{ box-sizing: border-box;}的作用是什么?

    设置他以后,相当于以怪异模式解析,border和padding全会在你设置的宽度内部,

    10. line-height: 2和line-height: 200%有什么区别?

    区别体现在子元素继承时,如下:
    父元素设置line-height:2会直接继承给子元素,子元素根据自己的font-size再去计算子元素自己的line-height。

    父元素设置line-height:200%是计算好了line-height值,然后把这个计算值给子元素继承,子元素继承拿到的就是最终的值了。此时子元素设置font-size就对其line-height无影响了。

    11. inline-block有什么特性?如何去除缝隙?高度不一样的inline-block元素如何顶端对齐?

    inline-block 的元素既具有 block 元素可以设置宽高的特性,同时又具有 inline 元素默认不换行的特性。当然不仅仅是这些特性,比如 inline-block 元素也可以设置 vertical-align(因为这个垂直对齐属性只对设置了inline-block的元素有效) 属性。
    HTML 中的换行符、空格符、制表符等合并为空白符,字体大小不为 0 的情况下,空白符自然占据一定的宽度,使用inline-block 会产生了元素间的空隙。

    移除inline-block元素间隙方法

    (1)移除标签间的空格

    元素间的间隙出现的原因是元素标签之间的空格,把空格去掉间隙自然就会消失。来看以下几种写法:
    写法一:
    <div class="demo"><span>我是一个span</span><span>我是一个span</span><span>我是一个span</span><span>我是一个span</span> </div>

    写法二:
    <div class="demo"> <span>我是一个span </span><span>我是一个span </span><span>我是一个span </span><span>我是一个span</span> </div>

    写法三:利用HTML注释标签
    <div class="demo"> <span>我是一个span</span><span>我是一个span</span><span>我是一个span</span><span>我是一个span</span> </div>

    (2)取消标签闭合

    <div class="demo"> <span>我是一个span <span>我是一个span <span>我是一个span <span>我是一个span </div> .demo span{background:#ddd;display: inline-block;}

    把span标签的结束标签去掉,这样间隙就没有了。为了兼容IE6/IE7,最后一个标签需要闭合。
    <div class="demo"> <span>我是一个span <span>我是一个span <span>我是一个span <span>我是一个span</span> </div>.demo span{ background:#ddd; display: inline-block; }

    12 .CSS sprite 是什么?

    CSS Sprites是一种网页图片应用处理方式,就是把网页中一些背景图片整合到一张图片文件中,再利用CSS的“background-image”,“background- repeat”,“background-position”的组合进行背景定位。

    其优点在于:

    减少网页的http请求,提高性能,这也是CSS Sprites最大的优点,也是其被广泛传播和应用的主要原因;
    减少图片的字节:多张图片合并成1张图片的字节小于多张图片的字节总和;
    减少了命名困扰:只需对一张集合的图片命名,不需要对每一个小元素进行命名提高制作效率;
    更换风格方便:只需要在一张或少张图片上修改图片的颜色或样式,整个网页的风格就可以改变,维护起来更加方便。
    诚然CSS Sprites是如此的强大,但是也存在一些不可忽视的缺点:

    图片合成比较麻烦;

    背景设置时,需要得到每一个背景单元的精确位置,;
    维护合成图片时,最好只是往下加图片,而不要更改已有图片。

    13 .让一个元素"看不见"有几种方式?有什么区别?

    1.display:none;
    2.visibility:hidden;
    3.opacity:0;
    4.设置元素的position与left,top,bottom,right等,将元素移出至屏幕外
    5.设置元素的position与z-index,将z-index设置成尽量小的负数

    display:none;是让元素消失不占用位置。
    visibility :hidden;让元素不可见,但位置还在。这种方是让元素消失了,只是依然占据着页面空间。不可以出发点击事件
    opacity:0;设置元素透明度为0后,元素只是相对于人眼不存在而已,对浏览器来说,它还是存在的,所以可以触发点击事件

    相关文章

      网友评论

        本文标题:css基础知识2

        本文链接:https://www.haomeiwen.com/subject/zrefnttx.html