web开发JS程序员

CSS属性梳理

2017-06-01  本文已影响360人  FoolishFlyFox

CSS之属性逻辑结构图

本文梳理之CSS属性结构

该图显示了一些CSS的属性,好了,下面就一个个具体讲解;

了解CSS的盒子模型

在CSS中,每个元素都被看做一个盒子模型,而这种盒子模型在二维上看就是一个矩形,如下图所示:

标准盒子模型

通常来说,我们指定width、height属性就是指定Content部分的宽度和长度,实际上我们可以通过设置box-sizing来定义长与宽所代表的内容;

box-sizing 是CSS3新引入的样式,其有如下可选值:

边框

这里所说的边框主要指margin、border和padding三部分;

margin

margin包括4个部分:margin-top、margin-right、margin-bottom和margin-left,是指与其他元素之间的距离;margin可以对4个方向进行统一设置,也可以对其中的方向分别设置:

<style type="text/css">
  /*margin后面所跟的参数个数可以是1、2、3或4*/

  /*1:设置div 4个方向的margin(留白)都为20px;*/
  div{margin:20px;}
  /*2:设置div上下的margin为20px,左右的margin为10px*/
  div{margin:20px 10px;}
  /*3:设置div的上-右-下-左margin分别为30px,20px,10px,20px*/
  div{margin:30px 20px 10px;}
  /*4:设置div的上-右-下-左margin分别为40,30px,20px,10px*/
  div{margin:40px 30px 20px 10px;}

  /*也可以通过margin-XXX指定XXX方向的margin*/
  div{margin-top: 20px;}

</style>

margin的参数值还可以是:

默认情况下,margin的值被设置为 0 ;

margin部分的背景色使用父元素的background-color ;

border

border即为元素的矩形边框;border最重要的3个属性为:

描述
none 定义无边框
hidden 与none相同,对于表,hidden 用于解决边框冲突
dotted 定义点状边框
dashed 定义虚线
solid 定义实线
double 定义双线
groove 定义3D凹槽边框
ridge 定义3D 垄状边框
inset 定义3D inset 边框
outset 定义3D outset 边框
inherit 规定从父元素继承边框样式

这3个属性可以单独定义,也可以通过border属性同时定义,eg:

border : 3px solid red;

其中,3个参数的顺序没有要求;

padding

设置content与border之间的距离;该部分使用background-color进行颜色填充;也是4个方向的设置:padding-top、padding-right、padding-bottom、padding-left;

box-shadow

设置边框的阴影,使其更有立体感;具体设置见 CSS3 box-shadow介绍;

背景

背景的内容有两种,一种是通过颜色进行填充,另一种是以图片进行填充;

背景填充类型

当通过 background-image 指定以图片进行背景填充后,当图片尺寸小于元素尺寸导致图片不能覆盖整个元素时,可通过 background-repeat 设置图片的填充方式;该属性的值选项如下:

背景是否固定

background-attachment 可以是指背景是否随滚动条的移动而移动;属性如下:

设置背景图片开始绘制的位置

通过设置 background-position可以设置从什么地方开始绘制背景图片;

其选项有以下几种类型:

注意:在计算机上,左上角点设为(0,0)点,x轴水平向右,y轴垂直向下;

故:0% 0%表示图片左上角点与元素的左上角点重合,100% 100%表示图片右下角点与元素的右下角点重合,50% 50%表示图片中心点与元素中心重合;

如果background-repeat为no-repeat时,因为只是绘制一张图片,上述论述非常容易理解;如果背景图片以repeat方式填充,可以理解为在完成上述一张图片的绘制后,以该图片为基准位置,进行重复填充;

组合类型 对应%x %y形式
left top 0% 0%
left center 0% 50%
left bottom 0% 100%
center top 50% 0%
center center 50% 50%
center bottom 50% 100%
right top 100% 0%
right center 100% 50%
right bottom 100% 100%

例如,30px 20px 表示图片的左上角点位于元素(30px,20px)的坐标位置,换言之,从元素的(30px,20px)位置开始绘制图片;

确定元素的(0,0)点

设置background-position,我们说left top是指将图片的左上角点与元素的左上角点相重合,图片的左上角点容易确定,但哪里是元素的左上角点呢,这就需要通过下面的这个属性来确定了:

background-origin

该属性可以取以下的几种值:

您应该觉得挺眼熟,对的,box-sizing 的属性也是这3个值;

background-clip

该属性规定了填充到哪里终止,有以下3个属性:

文本CSS设置

文本格式

text-transform : 该属性能够控制文本的大小写,而不论源文档中文本的大小写;该属性能取以下值:

字体控制

含义
xx-small 非常小
x-small
small 较小
medium 中等,与父元素字体尺寸相同
large 较大
x-large
xx-large 非常大
smaller 比父元素更小
larger 比父元素更大
length 指定字体为具体的尺寸,如20px
% 设置基于父元素尺寸的一个百分比
100%等价于medium
inherit 从父元素继承该属性
含义
normal 正常显示,如果h1使用该属性值,将不加粗
bold 粗体显示
bolder 更粗的字体显示
lighter 更细的字体显示
数值 由细到粗为100、200、300、...、900
inherit 从父元素继承
含义
normal 默认值,标准字体显示
small-cap 小型大写字母显示
inherit 从父元素继承该属性
含义
none 默认值,正常显示
underline 文字加下划线
line-through 文字中间加横线(类似删除线)
overline 文字加上划线
blink 文本闪烁
inherit 从父元素继承该属性

文本布局

含义
normal 默认值,表示正常显示
number 设置数字,该数字会与当前的字体尺寸相乘来设置行高
length 设置固定的行间距
% 基于当前字体的百分比行间距,200%等价于2
inherit 从父元素继承该属性
含义
normal 默认,规定字符间没有额外的空间
length 规定字符间的固定空间,可以为负,表示文本重叠长度
inherit 从父元素继承该属性

其值与letter-spacing一样,有normal、length和inherit 3种;

含义
left 左对齐
right 右对齐
center 居中
justify 两端对齐(貌似没有效果)
inherit 从父元素继承
含义
length 定义固定的首行缩进值,如32px
% 定义基于 父元素宽度 的百分比缩进
50%表示首行从父元素中间位置开始
含义
normal 换行符会被忽略,多个连续空格显示一个</br>当文本长度超过元素宽度后,自动换行
pre 换行符、多个连续空格都会以原样显示
不自动换行
nowrap 类似normal,只是当文本长度超过元素宽度后,</br>不自动换行,而是出现水平滚动条
pre-line 换行符保留,多个连续空格显示一个
inherit 从父元素继承该属性

列表控制

含义
none 无标记
disc 默认值,列表前用实心圆进行标记
circle 空心圆
square 实心方块
decimal 数字
decimal-leading-zero 以0开头的数字,如01、02
lower-roman 小写罗马字母,如i,ii,iii,iv
upper-roman 大写罗马字母,如I,II,III,IV
lower-alpha 小写英文字母
upper-alpha 大写英文字母
lower-greek 小写希腊字母
lower-latin 小写拉丁字母,与lower-alpha相同
upper-latin 大写拉丁字母,与upper-alpha相同
hebrew 传统的希伯来编号方式
armenian 传统的亚美尼亚编号方式
georgian 传统的乔治亚编号方式
含义
inside 列表项标记也被放在文本内部,当文本超过一行,换行后的首字与标记对齐
outside 列表项标记不被放在文本内部,当文本超过一行,换行后的首字与上一行文字对齐首字
inherit 从父元素继承该属性值
含义
none 不使用图片作为列表项标记
url 使用图片作为列表项标记
通过url进行指定
inherit 通过父元素继承该属性

其他

含义
visible 默认值,元素可见
hidden 元素不可见
inherit 从父元素继承该属性值
含义
visible 默认值,内容显示在元素外
hidden 不显示溢出的内容
scroll 显示滚动条供用户拖动查看内容</br>同时显示水平和垂直滚动条
auto 只有内容被不能全部显示在元素内,才出现滚动条
inherit 从父元素继承该属性
含义
rect(t,r,b,l) 指定一个矩形区域,上下左右分别为t,r,b,l 4个值
auto 默认值,不进行截取
inherit 从父元素继承clip属性的值

PS

以上内容很多参考了w3c上的内容;

还有很多的内容没有写上来,因为CSS3涉及的内容实在太多,比如颜色模型、渐变、2D、3D模型;这些内容都有很多内容,所以,以后用到再总结好了;

上一篇下一篇

猜你喜欢

热点阅读