HTML和CSS之CSS(记录二2015.3.30)

css样式:

  • css样式由选择符和声明组成,声明又由属性和值组成。
  • eg: p{ color: red; font-sieze:12px},p为选择符,大括号中的一个属性和值组成的为一个声明(本例中有两个声明),color为属性,red为值。
  • 当有多个声明的时候之间用分号隔开。

css分为三种:

  • 内联式,嵌入式和外部式。
  • 内联式就是直接在标签中写的。
  • 嵌入式是在head标签的style标签中。
  • 外部式是把样式写在一个单独的文件中,然后是用link标签将样式链接到html文件中。eg:  <link href="", rel="stylesheet" type="text/css"> rel="stylesheet" type="text/css"是固定写法不允许更改。
  • 优先级是:内联式最高,嵌入式次之,外部式最低(在具有相同的权值下的优先级)(就近原则)。

选择器:

  • 语法:选择器{样式;}。
  • 标签选择器:标签选择器就是html中的标签。eg:p{color:red;}。
  • 类选择器:.类选择器名称{css样式代码}
语法:
.类选器名称{css样式代码;}
注意:
1、英文圆点开头
2、其中类选器名称可以任意起名(但不要起中文噢)
使用方法:
第一步:使用合适的标签把要修饰的内容标记起来,如下:
<span>胆小如鼠</span>
第二步:使用class="类选择器名称"为标签设置一个类,如下:
<span class="stress">胆小如鼠</span>
第三步:设置类选器css样式,如下:
.stress{color:red;}/*类前面要加入一个英文圆点*/
  • id选择器:id选择器前面是“#”。id选择器只能使用一次,且仅仅只能使用一次。可以用一个类选择器列表为一个元素同时设置多个样式,id选择器不能。即可以是 <span class="c1 c2"></span>但是不能是<span id="i1 i2"></span>。
  • 子选择器:>,用于选择指定标签的第一代子元素。如下如果使用.food>li{border:1px solid red;}则水果和蔬菜周围都会有一个边框,但是里面的li是不会有边框的。
<ul class="food">
    <li>水果
        <ul>
            <li>香蕉</li>
            <li>苹果</li>
            <li></li>
        </ul>
    </li>
    <li>蔬菜
        <ul>
            <li>白菜</li>
            <li>油菜</li>
            <li>卷心菜</li>
        </ul>
    </li>
</ul>
  • 包含(后代)选择器:即加入空格,用于选择指定标签下的后辈元素。如果使用.food li{border:1px solid red;}则除了第一代的li有边框外,内层的li也会有边框。包含选择器和子选择器的区别是:包含选择器包含子代和孙代等后辈,子选择器只包含子代。
  • 通用选择器:*作用是匹配所有的html标签。
  • 伪类选择器:允许给html不存在的标签设置样式。如a:hover{color:red};目前为之可以兼容所有浏览器的也之有a标签了。
  • 分组选择器:“,”号。例子如下:
h1,span{color:red;}
它相当于下面两行代码:
h1{color:red;}
span{color:red;}
  • 权值:标签的权值为1,类选择符的权值为10,id选择符的权值为100。如果权值相同则可以使用就近原则。
p{color:red;} /*权值为1*/
p span{color:green;} /*权值为1+1=2*/
.warning{color:white;} /*权值为10*/
p span.warning{color:purple;} /*权值为1+1+10=12*/
#footer .note p{color:yellow;} /*权值为100+10+1=111*/
  • 重要性:有些特殊的情况需要设置最高的权值,这个时候我们需要使用!important(权值高于用户自己设置的样式)。p{color:red!important;}

排版:

  • 文字排版-粗体:font-weight:bold。
  • 文字排版-斜体:font-style:italic。
  • 文字排版-下划线:text-decoration:underline。
  • 文字排版-删除线:text-decoration:line-through。
  • 段落排版-缩进:text-indent:2em。
  • 段落排版-行间距:line-height:1.5em。
  • 段落排版-中文字间距,字母间距: letter-spacing:50px(如果是字母的话设置的是字母和字母之间的间距) ,word-spacing:50px  (设置的是单词和单词之间的间距)。
  • 段落排版-对齐:text-align:center/left/right。
  • 元素分类:

    标签元素有三类:块状元素、内联元素(行内元素)和内联块状元素。

      块状元素:div,p,h1...h6,ol,ul,dl,talbe,address,blockquote,form 等

      内联元素:a, span,br,i,em,strong,label,q,var,cite,code,

      内联块状元素:img,input

      区别:

        每个块状元素都新起一行,并且后面的元素也另起一行。元素的高、宽、行高以及顶和底边距都可以设置。元素宽度在不设置的情况下是其父元素的100%。

        内联元素在同一行,元素的高度、宽度及顶部和底部边距不可以设置,元素的宽度是其包含的内容的宽度,并且不可以改变。

        内联块状元素在同一行,但是高度和宽度及顶和底部边距可以设置。

盒模型:

  • 盒模型的实际宽度和高度包括内容、边框(border),边界(margin)。
  • 内容和边框之间成为填充。顺序是上右下左。padding在边框里,margin在边框外。

css布局模式:

  • 流动模式(flow),浮动模式(float),层模式(layer)。
  • 流动模式是默认的网页布局模式,典型特点是:1.块状元素会在包含元素内按自上而下的顺序垂直延伸分布2.内联元素会自左向右排列。
  • 浮动模式:设置float。
  • 层模式:绝对定位(absolut),  相对定位(relative),固定定位(fixed)。

    绝对定位:如果想为元素设置层模型中的绝对定位,需要设置position:absolute(表示绝对定位),这条语句的作用将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口。

    相对定位:相对与之前的位置用left op ightottom进行设置,原先的位置任然保留,也就是别的元素不能使用。

    固定定位:相对移动的坐标是视图。

盒模型代码简写:

  • 简写规则是上右下左。
  • 如果top和bottom相同,left和right相同,则可以缩写为两个。
  • 如果left和right相同,则为:margin:10px 20px 30px (上,左右,下)

长度值:

  • 像素。
  • em(就是本元素指定的font-size值,如果元素font-size为14px,则1em=14px,如果font-size为18px,则1em = 18px),如果本元素的font-size设置为em,则以父元素的 font-size为准。
  • 百分比(font-size:12px;line-height:130%【12*1.3】)。

水平居中设置:

  • 水平居中设置-行内元素:

    如果被设置的元素是是行内元素,水平居中是给父元素设置text-align:center。

  • 水平居中设置-块状元素:

    如果被设置的元素是块状元素,设置text-align就没有用了,此时又分两种情况(定宽块状和不定宽块状),满足定宽和块状元素时可以设置左右margin为auto来实现居中。

      1.定宽块状元素

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>定宽块状元素水平居中</title>
<style>
div{
    border:1px solid red;
    
    width:500px;
    margin:20px auto;
}

</style>
</head>

<body>
<div>我是定宽块状元素,哈哈,我要水平居中显示。</div>
</body>

    2.不满足定宽的块状元素:

      三种方法设置居中(1.加入table标签 2.设置display:inline 3.设置position:relative和left:50%)。

        加入table标签:

          第一步:为需要设置的居中的元素外面加入一个 table 标签 ( 包括 <tbody>、<tr>、<td> )。

          第二步:为这个 table 设置“左右 margin 居中”(这个和定宽块状元素的方法一样)。

        设置display:

          改变块状元素为display为inline,然后使用text-align:center来实现居中。

html代码:

<body>
<div class="container">
    <ul>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
    </ul>
</div>
</body>
css代码:

<style>
.container{
    text-align:center;
}
.container ul{
    list-style:none;
    margin:0;
    padding:0;
    display:inline;
}
.container li{
    margin-right:8px;
    display:inline;
}
</style>

        设置position:

          通过给父元素设置 float,然后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left:-50% 来实现水平居中。

垂直居中设置:

  • 垂直居中-父元素高度设置的单行文本:设置父元素的height然后设置line-height和height相同。
  • 垂直居中-父元素高度确定的多行文本:

    1.使用插入table包括tbody,tr、td,同时设置vertical-align:middle。css有一个样式 vertical-align,但是这个元素只有在td和th中才会起作用,所以需要插入table标签。

    2.设置块状元素的display为table-cell,激活vertial-align(就是两个都设置display:table-cell;vertial-align:middle;),但是ie67部支持这个样式。

隐性改变display样式:

  不论之前是什么元素类型,display:none除外,设置position:absolute或者float:left/right后元素会自动变成display:inline-block,当然就可以设置宽度和高度了,并且默认不占满父元素。

    

原文地址:https://www.cnblogs.com/emmaBlogs/p/5337258.html