03 - 常用css和css规范

03 - 常用css和css规范

在我们的实际开发过程中,不会直接通过strong标签(em标签)调整元素,用css去调整页面中元素的样式

1.CSS-层叠样式表(Cascading Style Sheets)

  • 层叠:css的样式存在,有一定的样式规则,根据样式规则的优先级决定是否覆盖
  • 样式表:描述元素在页面中的展示效果,将页面的元素的展示效果分离出来单独控制,结构和样式分离,用css描述页面的元素的特点,样式表是使用于某一些符合条件的元素,有一定的规则的
  • 你写了一个样式,别人写了另外一个样式,到底谁的能够显示呢?这就存在覆盖问题

2.样式的分类

样式的分类:行内样式,内部样式,外部样式

对于页面的结构展示不直观,不方便维护

  1. 行内样式(internal style)

    • 特点1:直接作用到当前元素身上,十分准确,优先级最高

    • 特点2:对于页面的结构展示来说,不直观,不方便维护

    • 特点3:行内样式使代码结构变得复杂,,代码冗长,不方便阅读,如果和它有同样的样式,这样写太繁琐了
    • 特点4:直接写到标签里面的style属性当中(样式),以分号间隔多条样式

代码示例-文字变颜色(行内样式),一定要写分号;:

<p style='color:#ff0036;background-color:green;'>我会变色,你会吗?我就是变色龙</p>
  1. 内联样式(第二套语法结构):

    • 特点1:选中元素才能设置样式,选不中,则样式不展现,存在样式冲突(优先级问题)
    • 特点2:存放在style标签当中,style(style对外展示效果)放到head标签里面
    • 特点3:方便维护,结构和样式分离,可复用
    • 特点4:做小demo经常使用内联样式
    • 特点5:同一个内联样式当中,同样的选择器后写的的样式会把前面写的覆盖
<style>
    p{/*单条样式以分号作为分隔;样式名:样式值;*/
        color:red;
    }
    /*这是style里面的注释*/
</style>
  1. 外部样式(企业级开发中使用)

    • <link rel='stylesheet' href=''>
      写入head,优先书写,阻塞进程,读取完成后加载dom
    • @import url(‘’); 必须写在样式头部
      写入style,优先书写,不影响进程,可能看到无样式dom,到有样式dom的变化,后续可添加媒体查询

    • 特点1:需要以单独的文件(.css)存放代码,然后通过link标签引入

    • 特点2:外部样式表的写法和内联样式一致
    • 特点3:做到项目的时候,要使用外部样式
    • 特点4: 编码格式是文件的保存格式,所以外部css也要有编码格式,在文件的第一行,需要输入@charset 'utf-8'
<link rel='stylesheet' href='引用资源的地址'>
<!-- 使用的写法如下,两种写法都可以 -->
<!--标准写法-->
<link rel='stylesheet' href='./style.css'>
<link rel='stylesheet' href='style.css'>

样式的优先级:

行内样式>内联样式>=外联样式

内部样式优先级>=外部样式优先级,因为link写在前面所以优先加载,后续内部样式覆盖

3.css的结构(语法)

  • 选择器(选择满足条件的所有元素)+{样式名:样式值;样式名:样式值;}
  • 选择器(主语)+{单条声明;单条声明;}
  • 单条样式以分号作为分隔
<style>
    p{/*满足条件的所有元素*/
        width: 100px;/*宽度*/     /*样式名: 样式值;*/
        height: 100px;/*高度*/
        color: green;/*字体颜色*/
        background: red;/*背景颜色*/
        font-size: 18px;/*字体大小*/
        font-weight:bold;/*字体粗细*/
        /*以上几种属性比较常用*/
    }   
</style>

4. css简单选择器

css选择器:为了方便选中所要设置的元素,可以选择单个/多个

简单选择器:

  1. 元素(标签)选择器
  2. id选择器
  3. class选择器

优先级: id选择器 > class选择器 > tagName(标签)选择器

元素选择器

直接写上标签名,缺点:容易污染样式(污染自己/别人的代码),指向不准确

PS.尽量少用标签选择器

代码示例:

<head>
     <style>
        p{/*选择了页面的所有的p*/
            color:blue;/*字体颜色*/
        }
     </style>
</head>
<body>
    <p>光说不练假把式</p>
</body>

id选择器

代表个人身份证,当前页面的唯一命名,唯一性,ID可以多次出现,但是相同ID名称只能出现一次,在js使用比较多

<head>
     <style>
          #text1{
             color:blue;/*字体颜色*/
          }
          #text2{
             color:red;
         }
     </style>
</head>
<body>
     <p id='text1'>只要你动手,学不会算我输!</p>
     <p id='text2'>只要你动手,学不会算我输!</p>
</body>

class选择器

不具有唯一性,同一个类名可以多次出现,通常用于css样式设置,描述一类相似的元素 可以重复出现

<head>
     <style>
      .text{
         color:blue;/*字体颜色*/
      }
     </style>
</head>
<body>
     <p class='text'>不懂的,先问问自己到底能不能解决</p>
     <p class='text'>自己是否真的用心去解决了</p>
</body>

id选择器与id选择器的区别:

命名方式选择器的使用特点优先级适用范围
class=’box’.box{}一类具有相似特点的元素css
id=’box’#box{}页面唯一的元素JS或大模块顶部

简单选择器的优先级:

  • 行内元素>id>class>tagName(标签)
  • 两个选择器选中同一个元素设置同一条样式,会遵循选择器优先级关系
  • 同样的选择器,写在后面的会把写在前面的覆盖掉

!important优先级最高,不推荐使用

<style>
    #box{
        width: 200px;
        height: 200px;
        background-color: red; 
    }
    .box{
        width: 100px;
        height: 100px;
        background-color: green;   
    }
    div{/*!important的使用*/
        width: 50px;
        height: 50px;
        background-color: yellow !important;
    }
</style>
<body>
    <div class='box' id='box'></div>
</body>

5.CSS命名规范

使用类选择器,尽量避免使用ID选择器定义样式,ID在一个页面中的唯一性导致了如果以ID为选择器来写CSS,就无法重用

  • 命名以字母开头,不能单个字母作为选择器,不允许带有广告等英文的单词,ad,adv,adver,advertising,防止该模块被浏览器当成垃圾广告过滤掉
  • 全小写,统一以-作为连字符不允许使用_,不要出现-与数字相连,禁止驼峰命名
  • 见名知意

6.组合选择器

  • 后代选择器
  • 子代选择器
  • 相邻(毗邻)选择器
  • 兄弟后代选择器

后代选择器

  • 中间用空格隔开

  • 选中的元素永远是最后一个挨着大括号的元素

<style>
     #wrap .content p{/*后代选择器:*/
        width:200px;
        height:200px;
        background-color:yellow;
        color:red;
     }
</style>
<body>
    <div class='wrap'>
        <p>只要你动手,学不会算我输!</p>
    </div>
</body>

子代选择器

严格的父子关系,选中的元素永远是挨着大括号的元素

<style>
     #wrap .content > p{
        width:200px;
        height:200px;
        background-color:yellow;
     }
</style>
<body>
    <div id='wrap'>
         <div class='content'>
            <p>我是最小的那一个</p>
         </div>
     </div>
</body>

毗邻元素选择器 +,不不不,我是问你身后挨着小姐姐

如果li同级相邻的为li标签,选择后面那个li标签同级关系,选中的元素永远是挨着大括号的元素

<style>
     .list li + li{/*前面有相邻li标签的li标签会变成红色*/
        color:red;
     }
</style>
<body>
    <ul class='list'><!--2,3,4变成红色-->
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>
</body>

兄弟元素选择器 ~,不不不,我是问你身后的所有的小姐姐

<style>
     /*兄弟元素选择器*/
    /*前面有li标签的li标签会变成红色*/
    .list li~li{
        color:red;
    }
</style>
<body>
    <ul>
        <li>1</li><!--24变红-->
        <li>2</li>
        <p>3</p>
        <li>4</li>
    </ul>
</body>

补充知识点:

div.box1和.box1的区别

div.box1:class类型名为box1的div标签(元素)

.box1:类名为box1的(标签)元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值