当前位置: 首页 > news >正文

前端三件套—CSS入门

上篇文章:

前端三件套—HTML入门https://blog.csdn.net/sniper_fandc/article/details/147070026?fromshare=blogdetail&sharetype=blogdetail&sharerId=147070026&sharerefer=PC&sharesource=sniper_fandc&sharefrom=from_link

目录

1 引入CSS

1.1 内部样式

1.2 内联样式

1.3 外部样式

2 选择器

2.1 标签选择器

2.2 类选择器

2.3 id选择器

2.4 通配符选择器

2.5 后代选择器

2.6 子选择器

2.7 并集选择器

2.8 伪类选择器

(1)链接

(2):force

3 常见样式

3.1 字体属性

3.2 文本属性

3.3 背景属性

3.4 圆角矩形

4 行级元素与块级元素

4.1 区别

4.2 显示模式

5 盒模型

5.1 边框border

5.2 内边距padding

5.3 外边距margin

6 弹性布局

6.1 开启弹性布局

6.2 justify-content(主轴布局)

6.3 align-items(侧轴(与主轴垂直)布局)


        CSS是层叠样式表,负责为页面中的元素设置各种各样的样式,层叠的意思是对于同一个元素样式可以叠加。

        CSS的语法规范:选择器+{一条/多条声明},声明表示添加什么样式,声明的属性是键值对,键和值之间用:分隔,键值对之间用;分隔。CSS代码写在<style></style>标签之间,该标签放在html代码中任何位置都可以生效,但是一般放在head标签中。

        注意:在CSS中注释的格式发生变化,使用/* */来注释,快捷键Ctrl+/键。

1 引入CSS

1.1 内部样式

        直接把style标签的CSS代码放到html文件中。

        这种方式优点是使html页面的内容和样式分离,但是缺点是分离的还不彻底,当CSS样式很多时代码很臃肿。

1.2 内联样式

        style作为标签的属性,优先级很高,会覆盖其他样式的写法。

        缺点是只能写简单样式。

1.3 外部样式

        单独创建CSS文件写html的样式,通过link标签引入CSS样式。(推荐)

<link rel="stylesheet" href="CSS文件路径">

        这种方式实现了html和CSS的分离,但是也有缺点:受浏览器缓存影响,修改的样式不能及时更新到页面中(需要强制刷新页面)。

        注意:关于样式的覆盖顺序,html文件从上往下加载,因此越靠近下面的样式越优先生效。

2 选择器

2.1 标签选择器

        使用标签名选中某一种标签:

    <style>div {color: rgba(0, 255, 55, 0.749);font-size: 50px;}</style>

        比如上述方式就会选中所有的div标签。

2.2 类选择器

        使用.+class名的方式选中某一类标签(标签中用class属性,并且值相同):

    <style>.one {color: red;}</style><div class="one">hello java!</div>

        上述方式.one就会选中class的值为one的标签。

        一个标签也可以引用多个类选择器:

    <style>.one {color: red;}.two {font-size: 20px;}</style><div class="one two">hello!</div>

        上述方式div标签就会同时引入one和two两种类选择器。

        注意:类选择器优先级比标签选择器更高。

2.3 id选择器

        使用#+id属性值(标签的id属性唯一)来选择标签:

    <style>#world {color:blue;}</style><div id="world">helloworld</div>

        上述代码就会把id="world"的标签设置样式。

        注意:优先级是id选择器>类选择器>标签选择器。

2.4 通配符选择器

        使用*来选中所有的标签(用于设置公共相同的样式):

* {color: red;}

2.5 后代选择器

        使用父元素+空格+子元素(子元素可以是任意后代)的方式来选择标签,只选中子元素,这里的父元素和子元素可以是任意标签选择器、类选择器或id选择器的组合:

    <style>ol li {color: green;}ol a {color: gold;}#ul-id a{color: red;}</style><ol><li>选项1</li><li>选项2</li><li><a href="#">选项3</a></li></ol><ul id="ul-id"><li>选项4</li><li>选项5</li><li><a href="#">选项6</a></li></ul>

        上述实现效果是ol列表(有序)先着色绿色,再修改ol列表的a标签(超链接)着色为金色,最后对ul列表(无序)的a标签着色红色,效果如下:

2.6 子选择器

        使用父元素+>+子元素(子元素只能是儿子)的方式来选择标签。其他使用方法同后代选择器,不再赘述。

2.7 并集选择器

        使用多个选择器选择多组标签,多个选择器之间使用,分隔。示例在后代选择器基础上添加:

        ol li, ul li{color: black;}

        此时结果会将所有的li表项都变为黑色:

        这里a标签并没有被选中,因此之前添加的样式没有被覆盖。

2.8 伪类选择器

(1)链接

        这类选择器主要是对超链接(a标签)进行点击时的效果样式的添加,有如下几类:

  •         a:link选择未被访问过的链接
  •         a:visited选择已经被访问过的链接
  •         a:hover选择鼠标指针悬停上的链接
  •         a:active选择活动链接(鼠标按下了但是未弹起)
        a:link {color: black;/* 去掉 a 标签的下划线 */text-decoration: none;}a:visited {/* 未点击时绿色 */color: green;}a:hover {/* 悬停时红色 */color: red;}a:active {/* 点击后蓝色 */color: blue;}

(2):force

        选择获取焦点(被选中)的input表单元素,这个使用较少,不再展示。

3 常见样式

        这里只列举常见样式的使用,更多样式及用法请查看mdn文档。

3.1 字体属性

        (1)字体(不建议用中文字体):font-family,比如font-family:'Microsoft YaHei';或font-fam

ily:'微软雅黑';。

        (2)大小(单位px):font-size,比如font-size: 20px;。

        (3)粗细(使用数字(100-900)或单词表示粗细,700==bold,400是不变粗==normal):font-weight,比如:font-weight: bold;。

        (4)样式:font-style,比如font-style: italic;(倾斜),font-style: normal;(不倾斜)。

3.2 文本属性

        (1)颜色:color,三种值表示方式1.red(颜色的名称)2.#ff0000(十六进制)3.rgb(255, 0, 0)(红,绿,蓝,数字越大该分量越浓)4.rgba(多了一个透明度参数)。

        (2)文本对齐:text-align,值有center:居中对齐、left:左对齐、right:右对齐。

        (3)文本装饰:text-decoration,值有underline下划线、none啥都没有(可以给a标签去掉下划线)、overline上划线、line-through删除线。

        (4)文本缩进:text-indent,值是正数或负数(向左凸出),单位是px或em(1em表示1个文字的大小)。

        (5)行高:line-height,值是数字px,注意:行高=上边距+下边距+字体大小,可以取nor

mal等值(不同浏览器效果不同,chrome为21px),如果行高等于元素高度(height==line-height),可以实现文本垂直居中。

3.3 背景属性

        (1)背景颜色:background-color,除了颜色外,取值还可以是transparent表示透明背景。

        (2)背景图片:background-image,取值url(图片路径)。

        (3)背景平铺:background-repeat,取值repeat平铺(复制多份铺地砖)、no-repeat不平铺、repeat-x水平平铺、repeat-y垂直平铺,默认repeat。注意:背景颜色和背景图片可以同时存在,背景图片在背景颜色的上方。

        (4)背景位置:background-position,取值x y;,取值类型有:方位名词(top, left, right, bott

om, center)、精确单位坐标或者百分比(以左上角为原点)、混合单位同时包含方位名词和精确单位,

        注意:如果给两个值,第一个是x,第二个是y。如果给一个值,该值一定是x,第二个值默认居中。

        (5)背景尺寸:background-size,取值两部分,宽度 高度,可以是数字、百分数,也可以是单词cover(扩展背景图片完全覆盖背景区域)或contain(扩展背景图片宽度高度完全覆盖内容区域(内容区域小于背景区域))。

3.4 圆角矩形

        border-radius: length,该属性可以使边框带有弧度,length是内切圆半径(px、em或百分数),越大弧度越大。如果是50%是圆(正方形宽的一半),如果要圆角矩形,就设置为矩形高度的一半。

        注意:border-radius可以同时设置四个角,使用四个length(空格分隔)或使用border-top-left-radius、border-top-right-radius、border-bottom-right-radius、border-bottom-left-radius。

4 行级元素与块级元素

4.1 区别

        (1)块级元素独占一行,行内元素不独占一行。

        (2)块级元素可以设置宽高,行内元素不能设置宽高。

        (3)块级元素四个方向都能设置内外边距,行内元素垂直方向不能设置。

        (4)块级元素内部可以是块级或行内,行级元素内部不能是块级。

4.2 显示模式

(1)display: block改成块级元素。

(2)display: inline改成行内元素。

(3)display: inline-block改成行内块元素。

5 盒模型

        html的每个元素都是一个盒子,内容content周围还有一些空间,分别是内边距padding、边框border和外边距margin。实际上,元素之间的间隔是border与border之间的距离。

5.1 边框border

        边框border属性有三个参数:border-width(粗细)、border-style(样式:默认没边框,有solid实线边框、dashed虚线边框、dotted点线边框等)、border-color(颜色)。

        还可以简写:border:1px solid red;,表示边框是1px粗细、实线边框和红颜色。也可以四个方向分别写指定的样式。

        注意:边框可以撑大盒子。使用通配符选择器设置属性box-sizing: border-box;可以控制浏览器默认行为不再撑大盒子。

5.2 内边距padding

        padding是设置内容与边框的距离,有多种写法:

        1.padding:1px;(上下左右都是1px)。

        2.padding:1px 2px;(上下1px,左右2px)。

        3.padding:1px 2px 3px;(上1px,左右2px,下3px)。

        4.padding:1px 2px 3px 4px;(上1,右2,下3,左4,顺时针)。

        5.padding-top(还有其他三个)单独设置。

        注意:内边距也会撑大盒子,同样可以用box-sizing: border-box;设置不再扩大。

5.3 外边距margin

        margin属性设置盒子与其他盒子之间的距离。使用规则用padding,不再赘述。

        设置元素水平居中(不是文本居中,并且前提是指定块级元素的宽度了):margin: 0 auto;或margin-left: auto;margin-right: auto;或margin: auto;。不能使用auto来进行垂直居中。

        注意:上下排列的两个元素的外边距是部分重合的,即两个元素的实际距离是各自外边距的最大值。左右排列的两个元素的外边距是叠加的,即两个元素的实际距离是各自外边距的加和。

6 弹性布局

        对于元素布局方式,最常见的就是居中操作,但是使用margin的布局非常局限,弹性布局就是专门解决一维空间(线)的布局方式的工具。

        开启弹性布局flex后,元素就变成flex container,其中的子元素就变成容器的成员flex item,而在容器布局方式存在主轴flex direction,布局时沿主轴方向布局,默认是横轴。

        注意:当父元素设置为display: flex之后,子元素的float,clear,vertical-align都会失效。

6.1 开启弹性布局

        display:flex;为父元素开启弹性布局。

        注意:默认子元素高度就会和父元素高度一致,除非单独设置子元素高度。

6.2 justify-content(主轴布局)

        该属性有以下取值:

含义

flex-start

默认值,子元素位于主轴开头布局(子元素间紧贴)

flex-end

子元素位于主轴结尾布局(子元素间紧贴)

center

子元素位于主轴中间布局(子元素间紧贴)

space-between

子元素平均分配主轴布局(子元素间有间隔,子元素紧贴主轴开头和结尾)

space-around

子元素平均分配主轴布局(子元素间有间隔,子元素与主轴开头和结尾也有间隔)

        注意:可以使用flex-direction: column;将主轴由默认的水平方向改为垂直方向。

6.3 align-items(侧轴(与主轴垂直)布局)

        该属性有以下取值:

含义

stretch

默认值,行拉伸与父元素高度一致

flex-start

子元素位于侧轴开头布局(子元素间紧贴)

flex-end

子元素位于侧轴结尾布局(子元素间紧贴)

center

子元素沿侧轴方向居中

space-between

子元素平均分配侧轴布局(子元素间有间隔,子元素紧贴侧轴开头和结尾)

space-around

子元素平均分配侧轴布局(子元素间有间隔,子元素与侧轴开头和结尾也有间隔)

        注意:align-items只能针对单行元素来实现。如果有多行元素,就需要使用item-contents或grid布局(网格布局,二维)。因此在上述取值中会发现space-between和space-around通常仅对主轴生效,不对侧轴生效。

下篇文章:

前端三件套—JavaScript语法入门https://blog.csdn.net/sniper_fandc/article/details/147071933?fromshare=blogdetail&sharetype=blogdetail&sharerId=147071933&sharerefer=PC&sharesource=sniper_fandc&sharefrom=from_link​​​​​​​


http://www.mrgr.cn/news/97831.html

相关文章:

  • WebGL数学手记:矩阵基础
  • React八案例上
  • python爬虫:DrissionPage实战教程
  • 柑橘病虫害图像分类数据集OrangeFruitDataset-8600
  • STM32——I2C通讯(软件模拟)
  • 探秘 Svelte+Vite+TS+Melt - UI 框架搭建,开启高效开发
  • PostgreSQL-数据库的索引 pg_operator_oid_index 损坏
  • SpringBoot 整合 MCP
  • JS 箭头函数
  • 【设计模式】面向对象开发学习OOPC
  • Apache Nifi安装与尝试
  • 研究嵌入式软件架构时遇到的初始化堆栈溢出问题
  • 3 版本控制:GitLab、Jenkins 工作流及分支开发模式实践
  • LeetCode Hot100 刷题笔记(2)—— 子串、普通数组、矩阵
  • 【回眸】Linux 内核 (十六) 之 多线程编程 下
  • 中间件-消息队列
  • C# 设置Excel中文本的对齐方式、换行、和旋转
  • 【HTML】纯前端网页小游戏-戳破彩泡
  • IDEA :物联网ThingsBoard-gateway配置,运行Python版本,连接thingsboard,接入 MQTT 设备
  • 以普通用户身份启动pure-ftpd服务端