• CSS细节


    1.子选择器,即大于符号(>),用于选择指定标签元素的第一代子元素。

    .food>li{border:1px solid red;}

    这行代码会使class名为food下的子元素li(水果、蔬菜)加入红色实线边框。

    2.包含选择器,即加入空格,用于选择指定标签元素下的后辈元素。如右侧代码编辑器中的代码:

    .first  span{color:red;}

    请注意这个选择器与子选择器的区别,子选择器(child selector)仅是指它的直接后代,或者你可以理解为作用于子元素的第一代后代。而后代选择器是作用于所有子后代元素。后代选择器通过空格来进行选择,而子选择器是通过“>”进行选择。

    总结:>作用于元素的第一代后代,空格作用于元素的所有后代。

    3.分组选择符

    当你想为html中多个标签元素设置同一个样式时,可以使用分组选择符(,),h1、span标签同时设置字体颜色为红色

     

    4.CSS的某些样式是具有继承性的,那么什么是继承呢?继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代。比如下面代码:如某种颜色应用于p标签,这个颜色设置不仅应用p标签,还应用于p标签中的所有子元素文本,这里子元素为span标签。

    p{color:red;}
    
    <p>三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>

    p中的文本与span中的文本都设置为了红色。但注意有一些css样式是不具有继承性的。如border:1px solid red;

    p{border:1px solid red;}
    
    <p>三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>

    在上面例子中它代码的作用只是给p标签设置了边框为1像素、红色、实心边框线,而对于子元素span是没用起到作用的。

    5.有的时候我们为同一个元素设置了不同的CSS样式代码,那么元素会启用哪一个CSS样式呢?我们来看一下面的代码:

    p{color:red;}
    .first{color:green;}
    <p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>

    p和.first都匹配到了p这个标签上,那么会显示哪种颜色呢?green是正确的颜色,那么为什么呢?是因为浏览器是根据权值来判断使用哪种css样式的,权值高的就使用哪种css样式。

    下面是权值的规则:

    标签的权值为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*/

    注意:还有一个权值比较特殊--继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低。

    6.css层叠性:后面的样式覆盖前面的样式,因此不难理解行内样式>嵌入式样式>外部样式

    7.最高权值

    我们在做网页代码的时,有些特殊的情况需要为某些样式设置具有最高权值,怎么办?这时候我们可以使用!important来解决。

    如下代码:

    p{color:red!important;}
    p{color:green;}
    <p class="first">三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>

    这时 p 段落中的文本会显示的red红色。

    8.删除线:text-decoration:line-through;

       缩进:text-indent

    9.中文字间隔、字母间隔设置:

    如果想在网页排版中设置文字间隔或者字母间隔就可以使用    letter-spacing 来实现

    如果我想设置英文单词之间的间距呢?可以使用 word-spacing来实现

    10.

    标签元素大体被分为三种不同的类型:块状元素内联元素(又叫行内元素)内联块状元素

    常用的块状元素有:

    <div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>

    常用的内联元素有:

    <a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>

    常用的内联块状元素有:

    <img>、<input>

    12.在html中,<span>、<a>、<label>、 <strong> 和<em>就是典型的内联元素行内元素)(inline)元素。当然块状元素也可以通过代码display:inline将元素设置为内联元素。如下代码就是将块状元素div转换为内联元素,从而使 div 元素具有内联元素特点。

    13.

    内联块状元素(inline-block就是同时具备内联元素、块状元素的特点,代码display:inline-block就是将元素设置为内联块状元素。(css2.1新增),<img>、<input>标签就是这种内联块状标签。

    inline-block 元素特点:

    1、和其他元素都在一行上;

    2、元素的高度、宽度、行高以及顶和底边距都可设置

    14.内联元素不可以设置宽高

    15.padding:内填充

         margin:外填充

    16.

    div{
        border:2px  solid  red;
    }

    上面是 border 代码的缩写形式,可以分开写:

    div{
        border-2px;
        border-style:solid;
        border-color:red;
    }

    注意:

    1、border-style(边框样式)常见样式有:

    dashed(虚线)| dotted(点线)| solid(实线)。

    2、border-color(边框颜色)中的颜色可设置为十六进制颜色,如:

    border-color:#888;//前面的井号不要忘掉。

    3、border-width(边框宽度)中的宽度也可以设置为:

    thin | medium | thick(但不是很常用),最常还是用象素(px)。

    17.字体缩写

    网页中的字体css样式代码也有他自己的缩写方式,下面是给网页设置字体的代码:

    body{
        font-style:italic;
        font-variant:small-caps; 
        font-weight:bold; 
        font-size:12px; 
        line-height:1.5em; 
        font-family:"宋体",sans-serif;
    }
    

    这么多行的代码其实可以缩写为一句:

    body{
        font:italic  small-caps  bold  12px/1.5em  "宋体",sans-serif;
    }
    

    注意:

    1、使用这一简写方式你至少要指定 font-size 和 font-family 属性,其他的属性(如 font-weight、font-style、font-varient、line-height)如未指定将自动使用默认值。

    2、在缩写时 font-size 与 line-height 中间要加入“/”斜扛。

    一般情况下因为对于中文网站,英文还是比较少的,所以下面缩写代码比较常用:

    body{
        font:12px/1.5em  "宋体",sans-serif;
    }
    18.

    18.长度值

    长度单位总结一下,目前比较常用到px(像素)、em、% 百分比,要注意其实这三种单位都是相对单位。

    1、像素

    像素为什么是相对单位呢?因为像素指的是显示器上的小点(CSS规范中假设“90像素=1英寸”)。实际情况是浏览器会使用显示器的实际像素值有关,在目前大多数的设计者都倾向于使用像素(px)作为单位。

    2、em

    就是本元素给定字体的 font-size 值,如果元素的 font-size 为 14px ,那么 1em = 14px;如果 font-size 为 18px,那么 1em = 18px。如下代码:

    p{font-size:12px;text-indent:2em;}

    上面代码就是可以实现段落首行缩进 24px(也就是两个字体大小的距离)。

    下面注意一个特殊情况:

    但当给 font-size 设置单位为 em 时,此时计算的标准以 p 的父元素的 font-size 为基础。如下代码:

    html:

    <p>以这个<span>例子</span>为例。</p>

    css:

    p{font-size:14px}
    span{font-size:0.8em;}

    结果 span 中的字体“例子”字体大小就为 11.2px(14 * 0.8 = 11.2px)。

    3、百分比

    p{font-size:12px;line-height:130%}

    设置行高(行间距)为字体的130%(12 * 1.3 = 15.6px)。

    19.水平居中设置:

    <1>如果被设置元素为文本、图片等行内元素时,水平居中是通过给父元素设置 text-align:center 来实现的。

    <2>定宽块状元素:

    当被设置元素为块状元素时用 text-align:center 就不起作用了,这时也分两种情况:定宽块状元素和不定宽块状元素。这一小节我们先来讲一讲定宽块状元素。

    满足定宽和块状两个条件的元素是可以通过设置“左右margin”值为“auto”来实现居中的。

    20.不定宽度的块状元素有三种方法居中(这三种方法目前使用的都比多):

    1. 加入 table 标签
    2. 设置 display;inline 方法
    3. 设置 position:relative 和 left:50%;

    这一小节我们来讲一下第一种方法:

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

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

    举例如下:

    html代码:

    <div>
    <table>
      <tbody>
        <tr><td>
        <ul>
            <li><a href="#">1</a></li>
            <li><a href="#">2</a></li>
            <li><a href="#">3</a></li>
        </ul>
        </td></tr>
      </tbody>
    </table>
    </div>

    css代码:

    <style>
    table{
        margin:0 auto;
    }
    
    ul{list-style:none;margin:0;padding:0;}
    li{float:left;display:inline;margin-right:8px;}
    </style>

    第二种方法:改变块级元素的 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>

    这种方法相比第一种方法的优势是不用增加无语义标签,简化了标签的嵌套深度,但也存在着一些问题:它将块状元素的 display 类型改为 inline,变成了行内元素,所以少了一些功能,比如设定长度值

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

    代码如下:

    <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{
        float:left;
        position:relative;
        left:50%
    }
    
    .container ul{
        list-style:none;
        margin:0;
        padding:0;
        
        position:relative;
        left:-50%;
    }
    .container li{float:left;display:inline;margin-right:8px;}
    </style>

    这种方法可以保留块状元素仍以 display:block 的形式显示,优点不添加无语议表标签,不增加嵌套深度,但它的缺点是设置了 position:relative,带来了一定的副作用。

    这三种方法使用得都非常广泛,各有优缺点,具体选用哪种方法,可以视具体情况而定。

    21.垂直居中-父元素高度确定的单行文本

    父元素高度确定的单行文本的竖直居中的方法是通过设置父元素的 height 和 line-height 高度一致来实现的。如下代码:

    <div class="container">
        hi,imooc!
    </div>

    css代码:

    <style>
    .container{
        height:100px;
        line-height:100px;
        background:#999;
    }
    </style>
    22.垂直居中-父元素高度确定的多行文本(方法一)

    父元素高度确定的多行文本、图片、块状元素的竖直居中的方法有两种:

    方法一:使用插入 table (包括tbody、tr、td)标签,同时设置 vertical-align:middle。

    说到竖直居中,css 中有一个用于竖直居中的属性 vertical-align,但这个样式只有在父元素为 td 或 th 时,才会生效。所以又要插入 table 标签了。下面看一下例子:

    html代码:

    <body>
    <table><tbody><tr><td class="wrap">
    <div>
        <p>看我是否可以居中。</p>
        <p>看我是否可以居中。</p>
        <p>看我是否可以居中。</p>
        <p>看我是否可以居中。</p>
        <p>看我是否可以居中。</p>
    </div>
    </td></tr></tbody></table>
    </body>

    css代码:

    table td{height:500px;background:#ccc}
    

    因为 td 标签默认情况下就默认设置了 vertical-align 为 middle,所以我们不需要显式地设置了。

    23.垂直居中-父元素高度确定的多行文本(方法二)

    在 chrome、firefox 及 IE8 以上的浏览器下可以设置块级元素的 display 为 table-cell,激活 vertical-align 属性,但注意 IE6、7 并不支持这个样式。

    html代码:

    <div class="container">
        <div>
            <p>看我是否可以居中。</p>
            <p>看我是否可以居中。</p>
            <p>看我是否可以居中。</p>
            <p>看我是否可以居中。</p>
            <p>看我是否可以居中。</p>
        </div>
    </div>

    css代码:

    <style>
    .container{
        height:300px;
        background:#ccc;
        display:table-cell;/*IE8以上及Chrome、Firefox*/
        vertical-align:middle;/*IE8以上及Chrome、Firefox*/
    }
    </style>

    这种方法的好处是不用添加多余的无意义的标签,但缺点也很明显,它的兼容性不是很好,不兼容 IE6、7。

    24.隐性改变display类型

    有一个有趣的现象就是当为元素(不论之前是什么类型元素,display:none 除外)设置以下 2 个句之一:

    1. position : absolute
    2. float : left 或 float:right

    元素会自动变为以 display:inline-block 的方式显示,当然就可以设置元素的 width 和 height 了且默认宽度不占满父元素。

  • 相关阅读:
    输入成绩看等级
    java输入学生成绩
    java基础
    关于session
    关于XML
    Java EE Map
    互联网应用和企业级应用的区别
    Java EE学习目标
    软件工程-来换网-软件度量
    web前端--学习成果
  • 原文地址:https://www.cnblogs.com/JackyKun/p/5090527.html
Copyright © 2020-2023  润新知