CSS常见样式2

2017-06-12  本文已影响0人  QQQQQCY

1. text-align: center的作用是什么,作用在什么元素上?能让什么元素水平居中

text-align 属性规定元素中的文本的水平对齐方式
可能的值

|值 |描述|
|-||
|left| 把文本排列到左边。默认值:由浏览器决定。|
|right |把文本排列到右边。|
|center |把文本排列到中间。|
|justify |实现两端对齐文本效果。|
|inherit |规定应该从父元素继承 text-align 属性的值。|

  1. text-align不会作用于块级元素。
  2. text-align作用于文本。
  3. text-align作用于内联元素。
  4. text-align作用于图片。
  5. text-align作用于inline-block

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

标准盒子模型

W3C 盒子模型的范围包括 margin、border、padding、content,并且 content 部分不包含其他部分。

IE盒子模型

IE 盒子模型的范围也包括 margin、border、padding、content,和标准 W3C 盒子模型不同的是:IE 盒子模型的 content 部分包含了 border 和 pading。

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

可令浏览器呈现出带有指定宽度和高度的框,并把边框和内边距放入框中。

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

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

  1. 移除空格
    元素间留白间距出现的原因就是标签段之间的空格,因此,去掉HTML中的空格,自然间距就木有了。考虑到代码可读性,显然连成一行的写法是不可取的,我们可以:
<div class="space">
    <a href="##">
    惆怅</a><a href="##">
    淡定</a><a href="##">
    热血</a>
</div>

或者是:

<div class="space">
    <a href="##">惆怅</a
    ><a href="##">淡定</a
    ><a href="##">热血</a>
</div>

或者是借助HTML注释:

<div class="space">
    <a href="##">惆怅</a><!--
    --><a href="##">淡定</a><!--
    --><a href="##">热血</a>
</div>

  1. 使用margin负值
.space a {
    display: inline-block;
    margin-right: -3px;
}
  1. 不让标签闭合
    如下处理:
<div class="space">
    <a href="##">惆怅
    <a href="##">淡定
    <a href="##">热血</a>
</div>
为了兼容IE6/IE7等浏览器,最后一个列表的标签加上闭合。
  1. 使用font-size:0
.space {
    font-size: 0;
}
.space a {
    font-size: 12px;
}
  1. 使用letter-spacing
.space {
    letter-spacing: -3px;
}
.space a {
    letter-spacing: 0;
}
  1. 使用word-spacing
.space {
    word-spacing: -6px;
}
.space a {
    word-spacing: 0;
}

一个是字符间距letter-spacing一个是单词间距word-spacing,大同小异。据测试,word-spacing的负值只要大到一定程度,其兼容性上的差异就可以被忽略。因为,貌似,word-spacing即使负值很大,也不会发生重叠。

可能的值

|值| 描述|
|-||
|baseline| 默认。元素放置在父元素的基线上。|
|sub |垂直对齐文本的下标。|
|super |垂直对齐文本的上标|
|top| 把元素的顶端与行中最高元素的顶端对齐|
|text-top| 把元素的顶端与父元素字体的顶端对齐|
|middle| 把此元素放置在父元素的中部。|
|bottom |把元素的顶端与行中最低的元素的顶端对齐。|
|text-bottom| 把元素的底端与父元素字体的底端对齐。|
|% |使用 "line-height" 属性的百分比值来排列此元素。允许使用负值。|
|inherit| 规定应该从父元素继承 vertical-align 属性的值。|

6. CSS sprite 是什么?

sprite指的是精灵图,CSS sprite简单来说就是图片拼合技术,主要是指将网页上很多用于装饰作用的小图片全部整合到一张图片内,减少网页加载时的HTTP请求并发数,页面加载时利用CSS中的背景图片定位属性background-position来指定需要显示这张大图上指定位置的部分

使用这个技术的优点就是减少页面加载时的瞬间HTTP请求并发数,提高了加载速度

缺点是这些被整合到一张图片的各种小图案后期维护修改比较麻烦,修改任意一个小图案都需要修改这张整图,同时还需要注意小图片在这个整图上的位置不能改变

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

.hide {
   display:none; 
 }

将元素设置为display:none后,元素在页面上将彻底消失,元素本来占有的空间就会被其他元素占有,也就是说它会导致浏览器的重排和重绘。

.hidden{
    visibility:hidden
}

visibility:hidden适用于那些元素隐藏后不希望页面布局会发生变化的场景

.transparent {
    opacity:0;
 }

这种方法和visibility:hidden的一个共同点是元素隐藏后依旧占据着空间,但我们都知道,设置透明度为0后,元素只是隐身了,它依旧存在页面中。

.move{
    text-indent:-999em
}

假如说用户浏览器分辨率不够支撑其缩减的宽度,那么它就默认显示“没有”,但是它会占据网页空间,只不过是我们在前端“看不见”而已,但是它会影响到文档的布局,感觉它是悬挂在本文前面,一直挂到你电脑屏幕足够大显示它为止。
一个比较好的可选方案:

.move{
    text-indent: 100%; 
    white-space: nowrap; 
    overflow: hidden; 
}
.size{
    font-size:0
}
.move{
   position:absolute;
   top:-999em
}
上一篇下一篇

猜你喜欢

热点阅读