美文网首页
CSS常见样式

CSS常见样式

作者: 不是我的简书 | 来源:发表于2017-01-21 18:14 被阅读57次

    1、块级元素与行内元素

    块级元素(block-level)

    1. div
    2. 标题 h1~h6
    3. 段落 p
    4. 表格 table,tr,td,th
    5. 列表 ul,dl,ol,li,dd,dt
    6. 表单 form
    7. 分隔线 hr
    8. pre定义预格式化的文本,保留空格和换行符,常用于展示计算机源代码

    行内(内联)元素(inline-level)

    • em,strong ,span, a ,img, br
    • button, label ,select ,textarea, input
    • code, script

    特性区别

    1. 块级可以包含块级和行内,行内只能包含文本和行内
    2. 块级占据一整行空间,行内占据自身宽度空间。默认情况下,块级元素会新起一行,行内元素不会以新行开始。
    3. 块级元素可以设置宽高,行内元素的高度是由line-height来决定,宽度由具体的内容来决定,设置height和width无效
    4. 行内元素设置上下margin、padding、border不占据空间。
    5. 行内元素添加属性display:block可转换为块级元素
    6. 行内元素可以"感受"到浮动元素的存在

    2、用 CSS 实现一个三角形

    方法1:

    <div style="width: 0px;
        border-top: 30px transparent solid;
        border-right:30px transparent solid;
        border-bottom:30px red solid;
        border-left: 30px red solid; ">
    </div>
    

    预览:


    方法2:
    width: 0;
    height: 0;
    border: 50px solid transparent;
    border-bottom: 50px solid red;
    transform:rotate(-45deg);
    

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

    overflow: hidden;   //多余的文字变成...
    text-overflow: ellipsis;   //超过边框的文字隐藏
    white-space: nowrap;   //不折行
    

    预览:


    4、px, em, rem 有什么区别?

    相对长度单位:px、em、ex(x-height)

    px:像素(指定图片的大小一般肯定是用这个,要不然图片会被变形拉伸,因为图片的尺寸大多数时候是以px来丈量的)
    em:值并不固定,会继承父级元素的字体大小,是默认字体大小的倍数。比如一个元素的font-size为14px,那么对于该元素,1em = 14px
    rem:rem是CSS3新增的一个相对单位,相对的只是HTML根元素,使用它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。

    单位转换器

    5、解释下面代码的作用?为什么要加引号? 字体里\5b8b\4f53代表什么?

    1. 代码作用:定义html页面使用的字体
    2. 中间有空格所以加引号,避免浏览器认为是多个字体
    3. \5b8b\4f53是Unicode码编号,表示“宋体”


      Unicode码编号

    6、文本样式都有哪些相关属性,对应哪些值

    color     //设置文本颜色
    font-family    //设置字体
    font-style :normal/italic(斜体)/oblique(倾斜)/inherit(从父元素继承)
    font-size    //字体大小
    line-height     //行高
    text-align     //控制行内元素如何与父元素对齐
    text-decoration:none/underline/overline(上划线)/line-through(文字删除线)/blink(让文本闪烁)
    text-indent:50px;  //将段落的第一行缩进 50 像素:
    text-shadow    //设置阴影
    

    7、IE 盒模型(box盒模型 )和W3C盒模型(content盒模型)有什么区别?

    W3C标准中padding、border所占的空间不在width、height范围内
    IE的盒模型width、height包括content尺寸 + padding + border


    可以看出W3C盒模型和IE的盒模型区别在与width的计算,现在各种浏览器都在集中向w3c靠拢,自然选择“标准 w3c 盒子模型”是明智之举。简单的办法就是在网页的顶部加上 doctype 声明。
    参考文章

    8、*{ box-sizing: border-box;}的作用是什么?参考资料

    真正的W3C盒模型宽高,需要加内边距和边框:

    • padding + border + width = 盒子的宽度
    • padding + border + height = 盒子的高度

    CSS设置的宽度仅仅是内容区的宽度,总体的盒模型就会大于我们想要的宽高,所以设置该属性可以为全局的盒模型设置带有指定宽度和高度的框,并把边框和内边距放入框中。

    9、line-height: 2和line-height: 200%有什么区别?

    1. 计算标准:line-height: 2根据自身元素的字体大小来计算,line-height: 200%根据父元素的字体大小来计算。
    2. 继承:line-height: 2继承给子元素的是2这个缩放因子,line-height: 200%继承给子元素的是200%计算后的值。

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

    inline-block特性:

    1. 可以设置宽高
    2. 具有行业元素特性,在同一行排列
    3. 默认内容撑开宽度
    4. ie6 ie7不支持块属性标签的inline-block
    5. 块级元素换行造成空白符,会有缝隙


      块级元素换行造成空白符,会有缝隙

    去除缝隙:

    1. html元素之间不换行 ps:代码太丑处女座拒绝
    2. 父元素设置font-size:0 ,其自身再设置需要的字体大小不要用,傻X才用,用了一定会引起更大的BUG
      父元素设置` font-size:0` ,其自身再设置需要的字体大小
    3. 父元素设置dispaly:flex,Flex是Flexible Box的缩写,意为"弹性布局"。注意:设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。

    高度不一致的inline-block的顶端对齐:

    图片有空隙可以使用vertical-align:top;
    无解
    flex
    float
    

    11、CSS sprite 是什么?

    CSS sprite又叫CSS雪碧图或CSS精灵,是一种背景图片的拼合技术。使用css雪碧图,能够减少页面的请求数、降低图片占用的字节,以此来达到提升页面访问速度的目的。
    具体实现:把每张小图标集合在一张大图上,通过background的url()直接定义X,Y轴的值,使每个地方显示需要的小图标。

    小贴士:
    图片合并可以使用这个线上地址 csssprites.com8
    在生产环境中使用的图片都需要经过压缩再使用,线上压缩图片地址 tinypng.com6

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

    常规:

    • display:none;
    • visibility:hidden;
    • opacity:0;

    其他(以下消失都是有前提条件的):

    • height:0;width:0;padding:0;margin:0;border:0; ... etc
    • position:absolute; left:1000000px; top:100000px; ...etc;
    • z-index:-1000;...etc
    • background-color:rgba(0,0,0,0);

    总结: 元素"看不见"的方式主要方式让元素用户在当前页面展示的视口里看不见。

    区别:

    1. display:none;从文档流消失,不占据文档空间,但是还存在DOM树中。
    2. visibility:hidden;opacity:0;还是会占据文档空间。
    3. display:none;visibility:hidden;绑定的事件不会触发。
    4. opacity:0;的元素绑定的事件还是会触发事件。

    13、常用CSS属性

    border-radius: 5px;  /*定义圆角*/
    
    span:hover{
      box-shadow: 0px 8px 20px #b9b9b9;  /*鼠标停留其上显示阴影*/
    }  
    
    transition-duration: 0.3s;  /*定义完成过渡效果需要花费的时间(以秒或毫秒计)*/
    

    潜伏题: jQuery是如何实现获取一个元素的正常宽高的。

    聊一聊字体图标的实现原理

    相关文章

      网友评论

          本文标题:CSS常见样式

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