CSS小记

CSS小记

1.CSS简介

CSS(Cascading Style Sheet)层叠样式表;决定了如何显示HTML元素;由W3C创造

1. 特点

  1. 样式通常储存在样式表中
  2. 外部样式表通常存储在 css文件中
  3. 多个样式定义可层叠为一

2. 引入方式

  1. 行内式:即标签中用style标签设定css样式(不推荐)

  2. 内嵌式:在成对的head标签中嵌入style标签(对于多个网页,若修改样式麻烦)

  3. 导入式

    将一个独立的.css文件引入html文件中,导入式使用css规则引入外部css文件

    <head>
    <style type="text/css">
    @import"mystyle.css";
    </style>
    </head>
    

    缺点:导入式会在整个网页装载完后再装载css文件;这就造成了一个问题

    ​若网页比较大则会出现先显示无样式的页面,闪烁一下之后,再出现网页的样式

  4. 链接式

    此方式 也是将一个.css文件引入到html文件中,但它与导入式不同的是使用html规则引入外部css文件

    <head>
    <link rel="stylesheet" href="mystyle.css" type="text/css" />
    </head>
    

    优势:在网页文件主体装载前装载完成,显示出的网页一开始就是带样式效果的

3. 层叠次序(优先级)

问:当同一个 HTML 元素被不止一个样式定义时,会使用哪个样式呢?

答:一般而言,所有的样式会根据下面的规则层叠于一个新的虚拟样式表中,其中数字4拥有最高优先级

  1. 浏览器缺省设置
  2. 外部样式表
  3. 内部样式表(位于head标签内部)
  4. 内联样式(在html文档的元素标签内部)

2. CSS语法

1. 基础语法

  1. 简介

    css规则由两个主要的部分构成:选择器以及一条或者多条声明

    选择器通常是您需要改变样式的html元素

    每一条声明由一个属性和一个值组成

  • 注意:

    1. 若值为若干单词,则要给值添加引号

      p {font-family:"sans serif"}
      
    2. css 对大小写不敏感;注意空格以便编辑

      body {
      color: #0000;
      margin: 0;
      padding: 0;
      }
      

2. 高级语法

1. 选择器分组

h1,h2,h3,h4,h5,h6{   /*用逗号隔开*/
color:green;
}

2.继承

子元素从父元素继承属性

body {
    font-family:Verdana,sans-serif;
}
/*body里面的所有子元素都使用 Verdana字体*/

若要摆脱继承,可以独立创建一个针对某标签的特殊规则

body {
    font-family:Verdana,sans-serif;
}
p {
   font-family:Times,"Times New Roman",serif;
}

3. 选择器分类

1. id 选择器
<html lang="zh_CN">
    <head>
        <meta charset="UTF-8">
        <style type="text/css">
            #red {color: red;}
            #green {color: green;}
        </style>
    </head>
    <body>
        <p id="red">这个段落是红色</p>
        <p id="green">这个段落是绿色</p>
    </body>
</html>
2. class 选择器
<html lang="zh_CN">
    <head>
        <meta charset="UTF-8">
        <style type="text/css">
            .center {
                text-align: center;
            }
        </style>
    </head>
    <body>
        <h1 class="center">
        This heading will be center-aligned
        </h1>

        <p class="center">
        This paragraph will also be center-aligned
        </p>
    </body>
</html>

class选择器和派生选择器

.fancy td {
    color: #f60;
    background: #666
}
/*在上述列子中,类名为fancy的更大的元素内部的表格单元都会以灰色背景显示橙色文字
(名为fancy的更大元素可能是一个表格或div)*/

元素也可以基于它们的类而被选择

td.fancy{
    color: #f60;
    background: #666;
}
<!--在上述列子中,类名为fancy的表格单元将是带有灰色背景的橙色文字
仅仅作用于td元素下的.fancy类-->
3. 派生选择器

通过依据元素在其位置的上下文关系来定义样式,使标记更加简洁

<html lang="zh_CN">
    <head>
        <meta charset="UTF-8">
        <style type="text/css">
            li strong {
                font-style: italic;
                font-weight: normal;
            }
        </style>
    </head>
    <body>
        <p>
            <strong>
            我是粗体字
            </strong>
        </p>
        <ol>
            <li>
                <strong>
                我是斜体字,这是因为我是在li列表中
                </strong>
            </li>
            <li>
            我是正常字体
            </li>
        </ol>
    </body>
</html>

id选择器和派生选择器

在现代布局种,id选择器常常用于建立派生选择器

<html lang="zh_CN">
    <head>
        <meta charset="UTF-8">
        <style type="text/css">
            #sidebar p {
                font-style: italic;
                text-align: right;
                marign-top: 0.5em;
                color:red;
            }
        </style>
    </head>
    <body>
        <p id="sidebar">这个段落是红色</p>
        <p id="green">这个段落是绿色</p>
    </body>
</html>
4. 属性选择器

对带有指定属性的html元素设置样式

[title] {
color: red;
}

属性和值选择器(单个值)

[title="W3School"] {
    border: 5px solid blue;
}

属性和值选择器(多个值)

<!DOCTYPE html>
<html lang="zh_CN">
<head>
<meta charset="UTF-8">
<style type="text/css">
[title~=hello]       /*适用于由空格分隔的属性值*/
{
color:red;
}
</style>
</head>

<body>
<h1>可以应用样式:</h1>
<h2 title="hello world">Hello world</h2>
<p title="student hello">Hello W3School students!</h1>
<hr />

<h1>无法应用样式:</h1>
<h2 title="world">Hello world</h2>
<p title="student">Hello W3School students!</p>
</body>
</html>
<!DOCTYPE html>
<html lang="zh_CN">
<head>
<meta charset="UTF-8">
<style type="text/css">
[lang|=en]/*适用于由连字符分隔的属性值*/
{
color:red;
}
</style>
</head>

<body>
<h1>可以应用样式:</h1>
<p lang="en">Hello!</p>
<p lang="en-us">Hi!</p>
<hr />

<h1>无法应用样式:</h1>
<p lang="us">Hi!</p>
<p lang="zh">Hao!</p>
</body>
</html>

常用场景设置表单的样式

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
input[type="text"]
{
  width:150px;
  display:block;
  margin-bottom:10px;
  background-color:yellow;
  font-family: Verdana, Arial;
}

input[type="button"]
{
  width:120px;
  margin-left:35px;
  display:block;
  font-family: Verdana, Arial;
}
</style>
</head>
<body>

<form name="input" action="" method="get">
<input type="text" name="Name" value="Bill" size="20">
<input type="text" name="Name" value="Gates" size="20">
<input type="button" value="Example Button">

</form>
</body>
</html>
5. 后代选择器

后代选择器亦包含选择器;可以选择作为某元素后代的元素

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style type="text/css">
h1 em {color:red;}     /* 元素em为h1的后代;两元素的层次间隔是无限的 */
</style>
</head>

<body>
<h1>This is a <em>important</em> heading</h1>
<p>This is a <em>important</em> paragraph.</p>
</body>
</html>
6. 子元素选择器

如果您不希望选择任意的后代元素,而是希望缩小范围,只选择某个元素的子元素,用此选择器

子结合符( > )

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
h1 > strong {color:red;}
/*这个规则会把第一个h1下面的两个strong元素内容变红色,其它则不受影响*/
</style>
</head>

<body>
<h1>This is <strong>very</strong> <strong>very</strong> important.</h1>
<h1>This is <em>really <strong>very</strong></em> important.</h1>
</body>
</html>
7. 相邻兄弟选择器

如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可用此选择器

相邻兄弟结合符( + )

注意:用一个结合符只能选择两个相邻兄弟中第二个元素

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
li + li {font-weight:bold;}
/*上面这个选择器只会把列表中的第二个和第三个列表项变为粗体;第一个列表项不受影响*/
</style>
</head>

<body>
<div>
  <ul>
    <li>List item 1</li>
    <li>List item 2</li>
    <li>List item 3</li>
  </ul>
  <ol>
    <li>List item 1</li>
    <li>List item 2</li>
    <li>List item 3</li>
  </ol>
</div>
</body>
</html>

结合其它结合符例子

html>body table + ul{
    margin-top: 20px;
}
/*解释:选择紧接在table元素后的所有兄弟ul元素,该table元素包含在一个body元素中,body元素本身也是html元素的子元素*/

4. 伪类

css伪类 ( pseudo-classes)用于 向某些选择器添加特殊 的效果

  1. 语法

    selector/selector.class : pseudo-class{
    property: value;
    }
    
  2. 锚伪类

    链接的不同状态分别以不同的方式显示(对大小写不敏感)

    a:link {color: #FF0000}/*未访问的状态*/
    a:visited {color: #00FF00}/* 已访问的状态*/
    a:hover {color: #FF00FF}/*鼠标移动到链接上的状态*/
    a:active {color:#0000FF}/*选定的链接*/
    
    /*注意顺序,必须按照上面的顺序,否则无效*/
    
  3. 伪类与css类配合使用

    a.red : visited{
        color:#FF0000;
    }
    <a class="red" href="css_syntax.asp">CSS Syntax</a>
    
    /*假如上面的列子中的链接被访问过,那么它将显示为红色*/
    

5. 伪元素

伪元素(pseudo-element)用于向某些选择器设置特殊效果

  1. 语法

    selector/selector.class : pseudo-element{
    property: value;
    }
    
  2. after伪元素

    可以在元素的内容后面插入新内容

    <!DOCTYPE html>
    <html lang="zh_CN">
    <head>
    <meta charset="UTF-8">
    <style type="text/css">
    h1:before {
        content:url(/i/w3school_logo_white.gif)
    }
    </style>
    </head>
    
    <body>
    <h1>This is a heading</h1>
    <p>The :before pseudo-element inserts content before an element.</p>
    <h1>This is a heading</h1>
    <p><b>注释:</b>如果已规定 !DOCTYPE,那么 Internet Explorer 8 (以及更高版本)支持 content 属性。
    </body>
    </html>
    

    效果:

  3. 反之before伪元素是插在元素内容前面

3. 常用CSS

后续跟进……

(0)

相关推荐

  • CSS复习Day02

    CSS复合选择器 目标 理解 理解css复合选择器分别的应用场景 应用 使用后代选择器给元素添加样式 使用并集选择器给元素添加样式 使用伪类选择器 为什么要学习css复合选择器 CSS选择器分为 基础 ...

  • CSS3

    CSS3 HTML+CSS+JavaScript 结构+表项+交互 如何学习? CSS是什么 CSS怎么用(快速入门) CSS选择器(重点+难点) 美化网页(文字.阴影.超链接.列表.渐变...) 盒 ...

  • css总结-笔记--部分非原创--属于资源整合

    文章目录 一.css基础教程 选择器的优先级: 4.1.派生选择器 4.2.id选择器 讨论:为什么相同id的值在每个 HTML 文档中只能出现一次? 3.1选择器的分组 3.2曾经存在过的继承问题 ...

  • 【代码笔记】Web-CSS-CSS伪元素

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  • 护航版B-17战斗小记,华而不实的空中驱逐舰,飞行员甚至拒绝驾驶它作战!

    摘文: "空勤们都不想驾驶它,因为YB-40不仅不参与轰炸,还总是在最危险的位置直面德国战斗机.我们的机枪手训练也存在问题,不能有效率地操作手里的武器.但是YB-40也留下了一些有用的经验, ...

  • 10个CSS简写/优化技巧整理

    CSS简写就是指将多行的CSS属性简写成一行,又称为CSS代码优化或CSS缩写.CSS 简写的最大好处就是能够显著减少CSS文件的大小,优化网站整体性能,更加容易阅读. 下面介绍常见的CSS简写规则: ...

  • 碧岩龙泉 美酒之源 ——寻味“李氏家园”酒小记

    2021年第038期||总第677期 艺海风│677期 "李氏家园"酒业公司位于陇西县碧岩镇境内 碧岩龙泉  美酒之源 --寻味"李氏家园"酒小记 王长华 有学 ...

  • CSS控制DIV层显示和隐藏的实现方法

    本文给大家带来了CSS控制DIV层显示和隐藏的方法,是前端学习必须要掌握的基础知识,非常不错,具有参考借鉴价值,感兴趣的小伙伴一起学习吧 CSS中的display和visibility属性 css中d ...

  • 解析CSS的box model盒模型及其内的子元素布局控制

    盒模型是CSS控制布局的主要方式之一,尤其是内部的元素排列控制,这里我们将来解析CSS的box model盒模型及其内的子元素布局控制,需要的朋友可以参考下 css的两种盒模型介绍   CSS中Box ...

  • 经典赏析 ||《丁香花小记并诗一首》静华诵读(第488B期)

    文:林鸿博 诵读:林静华 5月3日下午,正在办公,马晓卿局长称春花正艳,想拍张花间照片,一直没有时间.今天偶有片刻清闲,到办公楼下花丛中留影,招呼同去.我也已经在办公桌前忙碌甚久,乃欣然从命. 下去见 ...

  • sqlplus登录缓慢的问题分析过程及解决小记

    一.问题描述 近日在某客户现场进行巡检,发现有一个系统在进行sqlplus / as sysdba登录的时候特别缓慢.多次测试,最长时间可以达到近10s才能成功登录.此时,对主机的CPU.内存.IO以 ...

  • 10个实现炫酷UI设计效果的CSS生成工具

    昨天 英文 | https://mattkarski.medium.com/10-amazing-css-generators-for-ui-design-1f790791c4e7 翻译 | 小爱 根 ...

  • 第一百七十二个故事——腊八小记

    冬天应该很冷,南方的雪还没有下,大概也来不及了,印象中的家乡马路,已经被碾压得四分五裂.石潭大桥今天堵车,听说是吊船掉河里了.顺着照片里排成长龙般的车辆望去,还是可以看见那间被废弃的厂房,红色的铁门和 ...