CSS基础-超详解

news2024/11/15 10:09:09

目录

什么是CSS?

CSS的引入方式

        内部样式

        外部样式

        内联样式

CSS选择器

        CSS标签选择器

        类选择器

        id选择器

         通配符选择器

CSS属性设置

        字体

        文本


什么是CSS?

        CSS也被叫做层叠样式表, 英文全称为: Cascading Style Sheets, 是一种用来表现HTML(标准通用标记语言的一个应用) 或XML 等文件样式的计算机语言, CSS不仅可以静态的修饰网页, 也可以配合各种脚本语言动态地对网页各元素进行格式化处理.

        CSS能够对网页中元素的位置的排版进行像素级别的精准控制, 支持几乎所有的字体字号样式, 拥有对网页对象和模型样式编辑的能力

CSS的引入方式

        CSS在书写的时候, 不区分大小写.       

在编写CSS代码的时候, CSS语句有很多的引入方式, 大概分为下面三种, 

  1. 内部样式
  2. 外部样式
  3. 内联样式

下面着重来介绍这三种引入方式:

        内部样式

        内部样式也就是直接把CSS嵌入到HTML中, 放到style标签里面:

    <style>
        div {
            font-size: 50px;
            color: red;
            background-color: blue;
            text-align: center;
            font-family: '宋体';
        }
    </style>

        这种设计方式, 可以让<div></div>标签的样式改变成为div-style中设置的那样, 就比如我设置如上图的font-size: 50px, 也就是字体大小为50个像素, color为字体颜色指定为red(红色), background-color为背景颜色, 设置为蓝色blue, text-align: center中间对其, font-family为字体样式, 这里设置为宋体, 输入一个div标签:

    <div>
        hello world
    </div>

其展示效果如下:

         这种内部样式太具有局限性了, 假设有这样的一种情况, 如果我想写入两个div标签, 但是我一个要求字体颜色为红色, 另外一个字体颜色要求为蓝色, 这种情况, 就有点不符合我们的预期了, 因为这种内部样式的style设置法, 是针对所有被设置的标签的, 例如

    <style>
        div {
                // 属性....
        }
    </style>

<div id = 'div1'>这里是标签1 </div>

<div id = 'div2'>这里是标签2 </div> // 这两个div标签具有相同的属性设置

        这种内部样式的style引入CSS语句就不是非常灵活, 与之类似的还有另外一个方式, 那就是外部样式
       

        外部样式

        外部样式, 顾名思义也就是从外部引入CSS语法, 对于HTML标签来说, 可以通过link标签来把CSS引入进来, 引入的形式就是CSS文件的形式, 和之前JS文件引入类似:

<head>
    <link rel="stylesheet" href="[CSS文件路径]">
</head>

        例如我们在这个html的同目录底下创建一个testCSS.css文件, 我们在这个testCSS.css文件中写入对应的css语法, 然后将其引入到当前目录中的html文件当中,

        我们在这个testCSS.css文件中写入:

div {
    color: brown;
    font-family: "宋体";
    font-size: 100px;
}

然后在当前目录的HTML标签里面写入对应的div标签, 例如:

    <div>
        hello world
    </div>

显示如下: 

        内部引用和外部引用的优先级问题, 我们在引入当前外部CSS文件的同时, 也是用内部样式来处理, 发现内部样式的优先级高于外部样式.

        对于上面这两种方式都不是非常合适, 因为, 他们都是针对某一个类别的标签, 例如对于div标签使用内联的方法,或者在外部样式里面写入了内部样式的CSS语句, 那么所有div标签都会拥有这个CSS属性, 但是假设我现在有想要设置两个不同CSS属性的div标签, 那么这种内外部的方式显然就不够灵活, 于是就出现了下面的内联样式

        内联样式

        对于某一个特定的标签, 使用style属性, 来注入CSS属性, 例如:

    <div style="color: blue; font-size: 50px;">这是一个内联样式的div标签</div>

CSS选择器

        CSS标签选择器

        CSS标签选择器, 也就是格式如:

.标签名 {

       // 属性列

         此处的{ } 里面描述的是CSS属性, 描述是以键值对的形式存在的, 后面会着重讲解CSS里面一些常用的属性, 键值对之间使用冒号":"分割, 这种CSS标签选择器很难针对某个元素进行个性化定制.

        第一行的格式为点号'.' + 类名的形式

特点:

  • 能快速的应用到同一类型的HTML元素或者标签上
  • 但是针对同一类型的不同元素之间缺少差异化对待

        类选择器

        CSS中创建一个类名, 这个类可以对应一组CSS属性, 可以让指定的标签或者HTML元素应用这个类, 然后就可以使用这个类里面的CSS属性. 同样的这个类名的定义也是点号'.' + 类名组成的, 类名后面紧跟 {}, {}里面的内容是CSS的属性.

        如何使用这个类? 在HTML标签里面的class属性设置为对应的类名即可, 就可以应用此CSS属性.

        例如:

<body>
    <div class="test">这是一个引用了test类的div标签</div>
    <style>
        .test {
            font-size: 50px;
            color: rebeccapurple;
            font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
        }
    </style>

</body>

HTML页面显示:

特点:

  • 能够差异化对待不同的元素或者是同一元素
  • 多个标签可以同时使用同一个类

        id选择器

        id选择器和类选择器类似, CSS中使用#开头表示id选择器, 而类选择器是通过点号'.', id选择器的值和HTML某个元素的id值相同, html元素id可以不用带有#标识, 但是, 因为标签的id是唯一的, 所以id选贼器下的CSS属性不能同时被多个标签使用.

        例如:

<body>

    <div id="test">这是使用id选择器生成的div标签</div>
    <style>
        #test {
            color: red;
            font-size: 50px;
            font-family: '宋体';
        }
    </style>

</body>

         通配符选择器

        通配符大家应该很清楚了吧, 也就是这个符号: *, 使用*定义所有标签, 如下:

* {

        // CSS属性

}

页面里面的所有内容都会被改为通配符选择器里面的属性, 不需要被页面结构调用

以上是CSS中的四种最常用的CSS选择器, 这四个已经能应对绝大部分的场景了

下面着重介绍CSS里面的属性:

CSS属性设置

        字体

        font属性, 声明设置中所有的字体属性.

        字体的英文名为font, 关于字体的设置有很多, 我们通过' - '来选择字体的对应设置, 如下:

  • font-style : 定义字体风格, 该属性设置使用斜体, 倾斜, 正常字体, 斜体字体通常定义为字体系列中一个单独的字体, 理论上讲, 用户代理可以根据正常字体计算一个斜体字体, font-style: 里面的设置有, italic: 设置斜体,  oblique: 设置倾斜, normal: 默认值,显示一个标准字体样式.
        <div class="testDiv1">这是testdiv1标签</div>
        <div class="testDiv2">这是testdiv2标签</div>
        <div class="testDiv3">这是testdiv3标签</div>
        <style>
            .testDiv1{
                font-style:italic;
            }
            .testDiv2{
                font-style: oblique;
            }
            .testDiv3{
                font-style: normal;
            }
        </style>

     oblique和italic有什么区别呢? 虽然这两个属性倾斜度是一样的,但是他们所应用的倾斜方式是不同的, italic是字体设计师在字体制作中专门设计的一种字体, 具有更加漂亮, 自然的外观, 而oblique是将原本字体的立体效果, 听过计算机技术的手段来生成, 因此他们往往会显得比italic更加机械化和生硬.

  • font-size: 设置文本属性的大小
    (注意, 如果没有指定字体大小, 则普通文本默认大小为16px, 16px = 1em), 例如:

        <div class="size1">这是一个font-size为5px的div标签</div>
        <div class="size2">这是一个font-size为16px的div标签</div>
        <div class="size3">这是一个font-size为25px的div标签</div>
        <div class="size4">这是一个font-size为35px的div标签</div>
        <div class="size5">这是一个font-size为45px的div标签</div>
        <div class="size6">这是一个font-size为55px的div标签</div>
        <style>
            .size1 {
                font-size: 5px;
            }
            .size2 {
                font-size: 16px;
            }
            .size3 {
                font-size: 25px;
            }
            .size4 {
                font-size: 35px;
            }
            .size5 {
                font-size: 45px;
            }
            .size6 {
                font-size: 55px;
            }
    
        </style>

     这是以像素的形式来控制字体大小, 当然也可以使用em来设置字体的大小, 为了允许用户调整文本大小, 许多开发人员使用em而不是像素, 建议在w3c中使用em尺寸单位. 例如:
    font-size : 1.5em;

  • font-weight : 设置文本的粗细
    该属性用于设置显示元素的文本中所用字体加粗, 数值为400相当于关键字normal, 700等价于bold, 每个数字值对应的字体加粗必须至少与下一个最小数字一样细, 而且至少与下一个最大数字一样粗:

    font-weight属性值
    描述
    normal默认值, 标准的字符粗细
    bold定义粗字体
    bolder定义更粗的字体
    light定义细字体
    lighter定义更细的字体

    100

    200

    300

    400

    500

    600

    700

    800

    900

    定义由细到粗的字体, 400 = normal, 700 = bold

        <div class="test1">这是一个font-weight值为light的div标签</div>
        <div class="test2">这是一个font-weight值为lighter的div标签</div>
        <div class="test3">这是一个font-weight值为400的标准粗细div标签</div>
        <div class="test4">这是一个font-weight值为bold的div标签</div>
        <div class="test5">这是一个font-weight值为bolder的div标签</div>
        <style>
            .test3 {
                font-weight: 400;
            }
            .test1{
                font-weight: light;
            }
            .test2{
                font-weight: lighter;
            }
            .test4{
                font-weight: bold;
            }
            .test5{
                font-weight: bolder;
            }
    
        </style>

  • font-family: 规定元素的字体系列, font-familly可以把多个字体名称作为一个集合来保存, 如果浏览器不支持第一个字体, 那么他会继续尝试下一个, 以此类推, 也就是说font-family属性的值是用于某个元素的字体族名, 浏览器会使用它可识别的第一个值, 使用逗号来分隔这些集合中的元素, 例如:

        <div class="test1">这是一个div标签-1</div>
        <div class="test2">这是一个div标签-2</div>
        <style>
            .test {
                font-family:'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;
            }
            .test2 {
                font-family: 'Courier New', Courier, monospace;
            }
        </style>

     注意, 如果某个字体名称里面有空格, 需要使用单引号或者双引号,将其引用.

        文本

  • color: 文本颜色
  • text-align: 文本对其, 有三个值, 左对齐left(默认值), 右对齐right, 居中center, 两端对其justify
  • text-decoration: 文本装饰
    text-decoration的值
    描述
    none定义普通文本(默认值)
    underline文本下划线
    overline文本上划线
    line-through定义穿过文本的线条
    initial将此属性设置为默认值
    inherit从其非元素继承
        <div class="decoration1">这是下划线</div> <p></p> <br>
        <div class="decoration2">这是上划线</div> <p></p> <br>
        <div class="decoration3">这是穿过文本的线条</div><p></p> <br>
        <div class="decoration4">这是默认值</div>
        <style>
            .decoration1{
                font-size: 50px;
                text-decoration: underline;
            }
            .decoration2{
                font-size: 50px;
                text-decoration: overline;
            }
            .decoration3{
                font-size: 50px;
                text-decoration: line-through;
            }
            .decoration4{
                font-size: 50px;
                text-decoration: none;
            }
        </style>

  • text-decoration-color: 规定text-decoration的颜色, 例如上划线, 下划线等

        <div class="decoration-color">这是一个有颜色的下划线</div>
        <style>
            .decoration-color{
                font-size: 50px;
                text-decoration: underline;
                color: blue;
                text-decoration-color: red;
            }
            
        </style>

  • text-decoration-style: 设置文本装饰的类型, 例如实线, 波浪线, 点线, 虚线, 双线等

    font-decoration-style的值
    描述
    solid默认值, 表示为单行线条
    double双线
    dashed虚线
    dotted点线
    wavy波浪线

     例如:

        <style>
            .test1{
                font-size: 30px;
                text-decoration-style: solid;
                text-decoration: underline;
            }
            .test2{
                font-size: 30px;
                text-decoration: underline;
                text-decoration-style: double;
            }
            .test3{
                font-size: 30px;
                text-decoration: underline;
                text-decoration-style: dashed;
            }
            .test4{
                font-size: 30px;
                text-decoration: underline;
                text-decoration-style: dotted;
            }
            .test5{
                font-size: 30px;
                text-decoration: underline;
                text-decoration-style: wavy;
            }
            
        </style>
        <div class="test1">这是默认直线</div>
        <div class="test2">这是双线</div>
        <div class="test3">这是虚线</div>
        <div class="test4">这是点线</div>
        <div class="test5">这是波浪线</div>

  • text-decoration-thickness: 规定装饰线的粗细
    例如:

    h1 {
      text-decoration: underline;
      text-decoration-thickness: auto;
    }
    
    h2 {
      text-decoration: underline;
      text-decoration-thickness: 5px;
    }
    
    h3 {
      text-decoration: underline;
      text-decoration-thickness: 50%;
    }
    
    /* 使用简写属性 */
    h4 {
      text-decoration: underline solid red 50%;
    }

    其中text-decoration-thickness: 5px是线的宽度为5个像素, 同时也可想h4那样进行简写,

  • text-indent: 文本首行缩进
    (允许使用负值, 如果使用负值, 那么首行会被缩进到左边)
    可以通过像素点进行缩进, 也可以通过百分比来缩进, 例如:

        <style>
            .px{
                font-size: 30px;
                text-indent: 20px;
            }
            .percent{
                font-size: 30px;
                text-indent: 5%;
            }
        </style>
        <div class="px">这是通过像素点的缩进</div>
        <div class="percent">这是通过百分比的缩进</div>

  • line-height: 设置行间距
     

     

        <style>
            .test{
                font-size: 30px;
                line-height: 50px;
            }
            .test2{
                font-size: 30px;
                line-height: 100px;
            }
        </style>
        <div class="test">这是一个div标签, 行距为50px</div>
        <div class="test">这是一个div标签, 行距为50px</div>
        <div class="test">这是一个div标签, 行距为50px</div>
    
        <p></p>
    
        <div class="test2">这是一个div标签, 行距为100px</div>
        <div class="test2">这是一个div标签, 行距为100px</div>
        <div class="test2">这是一个div标签, 行距为100px</div>

    (未完待续)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/535893.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【云原生】k8s管理工具--Kubectl(二)

k8s管理工具--Kubectl&#xff08;二&#xff09; 一、项目生命周期1、项目生命周期2、创建kubectl run命令3、发布kubectl expose命令&#xff08;1&#xff09; Service的作用&#xff08;2&#xff09;Service的类型&#xff08;3&#xff09;查看Pod网络状态详细信息和Serv…

django 数据迁移makemigrations和migrate的备忘录

问题描述 之前成功生成过&#xff0c;重新执行python manage.py migrate后&#xff0c;数据库没有生成对应的数据表&#xff1b;表现为 Apply all migrations: admin, auth, contenttypes, sessions Running migrations:No migrations to apply.执行python manage.oy makemig…

STM32-光敏传感器实验

光敏传感器的主要是光敏二极管&#xff0c;核心是PN结&#xff0c;利用了光电效应&#xff0c;对光强很敏感&#xff0c;有单向导电性&#xff0c;工作时需要加反向电压。光照越强&#xff0c;等效电阻越小。 实验要求通过ADC3通道6&#xff08;PF8&#xff09;采集光敏二极管…

geoserver安装与发布服务过程

geoserver是做地图领域开发必会的插件之一&#xff0c;今天我们来分享多种安装方式与发布服务过程&#xff1a; 一、安装下载 1、官网地址&#xff1a;GeoServer 进入下载页面选择下载的版本&#xff0c;我这里选择2.22.3的稳定版本。 来到&#xff1a; 多种安装包可选&#…

科研er如何查询学术期刊分区信息?

文章目录 引言&#xff1a;为什么要查询学术期刊分区信息&#xff1f;1.使用LetPub查询1.1.LetPub简介1.2.查询步骤 2.使用《中科院文献情报中心期刊分区表》进行查询2.1.《中科院文献情报中心期刊分区表》简介2.2.查询步骤 引言&#xff1a;为什么要查询学术期刊分区信息&…

Linux man手册什么都找不到 常见问题总结

1.尝试安装缺少的page sudo yum[或者apt-get] install manpages-de manpages-de-dev manpages-dev glibc-doc manpages-posix-dev manpages-posix 安装成功后解决了没有pages的问题,如果还是查不到,则可能是找不到pages的问题 2.更新Gcc 或 G 后导致路径变化 man手册的所有…

每日一练 | 网络工程师软考真题 Day2

1、某工程制定的开发方案中定义了3个任务&#xff0c;其中任务A首先开始&#xff0c;且需要3周完成&#xff0c;任务周完B必须在任务A启动1周后开始&#xff0c;且需要2周完成&#xff0c;任务C必须在任务A后才能开始&#xff0c;且需要完成2周完成。该工程的进度安排可用下面的…

案例12:Java宠物医院预约管理系统设计与实现开题报告

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

CCF大数据与计算智能大赛-基于人工智能的漏洞数据分类冠军方案

基于人工智能的漏洞数据分类 前言 为及时跟踪国际信息安全趋势&#xff0c;需对国际公开的漏洞数据内容进行及时统计和梳理&#xff0c;例如CVE漏洞平台。CVE平台的漏洞信息包含有CVE编号、漏洞评分、漏洞描述等内容&#xff0c;其中漏洞描述含有对漏洞的利用条件、受影响的范…

Windows下快速启动Kafka以及三种发送消息的方式

目录 一、下载Kafka 二、启动kafka 2.1 启动kafka前得先启动zk 2.2 启动kafka 三、操作Kafka 3.1 创建 Kafka 主题&#xff08;Topic&#xff09; 3.2 将信息写入主题&#xff08;Topic&#xff09; 3.3 读取信息 四、Java实践-三种发送消息的方式 4.1 异步发送-无回…

登录appuploader

登录appuploader 常规使用登录方法 双击appuploader.exe 启动appuploader 点击底部的未登录&#xff0c;弹出登录框 在登录框内输入apple开发者账号 如果没有apple开发者账号&#xff0c;只是普通的apple账号&#xff0c;请勾选上未支付688 然后软件会提示输入验证码&#…

Go语言中sync.Mutex和sync.WaitGroup的用法

目录 【goroutine的调度器】 【Go语言的sync包】 【sync.Mutex】 sync.Mutex 底层原理 sync.Mutex 其它用法 【sync.RWMutex】 sync.RWMutex 实现原理 【sync.WaitGroup】 Go 并发编程中存在的难题&#xff1a;并发编程不像是传统的串行编程&#xff0c;程序的运行存在…

chatgpt批量生成网站文章-chatgpt批量生成自媒体的文章

怎么用chatgpt批量生成文章符合SEO优化的文章 ChatGPT是一款功能强大、智能化的自然语言处理模型&#xff0c;可以用于生成符合SEO优化的文章。以下是一些建议&#xff1a; 确定主题和关键词&#xff1a;在开始生成文章之前&#xff0c;需要先确定文章的主题和关键词。这有助于…

张益唐直播报告学术报告,零点猜想问题终于被解决(文末可获取论文原文)

原创 | 文BFT机器人 8日上午9点&#xff0c;张益唐教授带着一支黑笔、一块白板现身b站直播&#xff0c;全网超10万人在线观看&#xff0c;从直播消息放出开始&#xff0c;大家就早早端好了小板凳等着教授精彩开讲&#xff01; 直播40分钟一堂课的时长&#xff0c;知识点一个接…

《人月神话》译文修订明细(1)-读者可以对照修改

DDD领域驱动设计批评文集>> 《软件方法》强化自测题集>> 《软件方法》各章合集>> 《人月神话》译文修订如下&#xff0c;读者可以对照自己手上的书修改。 相关阅读 这回真要动刀子-征集《人月神话》中译本的翻译修正>> 第一章 原译文 它们最后都…

金山办公的WPS AI将引入大模型能力(LLM)到表格、文字、演示和PDF四大组件

&#x1f680; 金山办公的WPS AI将引入大模型能力&#xff08;LLM&#xff09;到表格、文字、演示和PDF四大组件&#xff0c;并支持桌面电脑和移动设备。 金山办公的WPS AI将引入大模型能力&#xff08;LLM&#xff09;到表格、文字、演示和PDF四大组件&#xff0c;并支持桌面…

MySQL双写机制

MySQL双写机制的目的是什么&#xff1f;是如何实现的&#xff1f; 一、双写的目的 为了解决 partial page write 问题。 InnoDB 的Page Size一般是16KB&#xff0c;其数据校验也是针对这16KB来计算的&#xff0c;将数据写入到磁盘是以Page为单位进行操作的。而计算机硬件和操…

PCB——功放pcb设计

地线干扰 电子产品的地线设计是极其重要的&#xff0c;无论低频电路还是高频电路都必须要个遵照设计规则。高频、低频电路地线设计要求不同&#xff0c;高频电路地线设计主要考虑分布参数影响&#xff0c;一般为环地&#xff0c;低频电路主要考虑大小信号地电位叠加问题&#x…

拿下多个定点/比亚迪要上!这项技术要「降维打击」单目感知

2008年&#xff0c;斯巴鲁在全球首次推出了搭载有立体视觉摄像头的主动安全解决方案&#xff0c;并具有紧急制动功能的“EyeSight”。2010年&#xff0c;斯巴鲁推出升级版的“EyeSight”&#xff0c;成为世界上首个可以在全车速范围内避免碰撞的量产技术系统。 2014年&#xff…

自助式数据分析工具:jvs-sdw数据智仓-数据服务配置

配置化数据服务 数据服务是将JVS-SDW内部加工分析生成的数据集通过API的方式 开放给其他系统使用。 界面介绍 进入数据服务界面&#xff0c;左侧是展示系统内部已经配置完成的数据服务目录&#xff0c;右侧是展现的对应数据服务的详细配置情况。 目录新增&#xff0c;如下图所…