CSS的常用元素属性,显示模式,盒模型,弹性布局

news2025/4/11 12:27:41

 目录

1.常用元素属性

1.1字体属性

设置字体

设置大小

字体粗细

文字样式

1.2文本属性

文字颜色

文字对齐

​编辑文本装饰

文本缩进

​编辑行高

​编辑1.3背景属性

背景颜色

                           

背景位置 

背景尺寸

1.4圆角矩形

2.元素的显示模式

2.1块级元素(display:block)

2.2行内元素(display:inline)

3.盒子模型

3.1边框

3.2内边距

3.3外边距

4.弹性布局

4.1开启弹性布局

4.2水平方向排列设置

 4.3垂直方向排列设置


1.常用元素属性

CSS有很多属性,我们只了解一些比较常用属性

1.1字体属性

设置字体

<body>
   <div class="one">
    这是一个div
   </div>
   <div class="two">
    这是一个div
   </div>
   <div class="three">
    这是一个div
   </div>
   <div class="four">
    这是一个div
   </div>
   <style>
    .one{
        font-size: 20px;
        font-family: '微软雅黑';
    }
    .two{
        font-size: 20px;
        font-family: '宋体';
    }
    .three{
        font-size: 20px;
        font-family: '黑体';
    }
    .four{
        font-size: 20px;
        font-family: '华文行楷';
    }
   </style>
</body>

我们用font-family来设置字体,这个属性指定的字体,必须是系统已经安装过的字体,上述几个例子都是系统自带的,有一些特殊的字体,系统上没有,就不会正常显示.一般是通过浏览器通过服务器获取到对应的字体文件才能正确显示

设置大小

使用font-size来设置字体大小

浏览器的每个文字可以看作是一个"方框",如果是英文阿拉伯数字,方框比较窄,中文一般是正方形

设置font-size:20px.意思就是文字框的高度是20px.我们使用截图工具时会显示大小

 比我们设置的像素要大出不少,我们需要调两个地方

一个是浏览器要恢复默认100%的大小(ctrl+0)

发现还是不精确,还需要调整桌面的缩放设置 

这下就好了,高度就i是20了

 所以设置20px是建立在浏览器页面和桌面缩放是100%的情况下的

字体粗细

设置font-weight来设置

    .one{
        font-size: 20px;
        font-family: '微软雅黑';
        font-weight: bold;
    }

与刚刚相比就粗了很多

设置字体粗细时有两种典型的设置风格

1.单词

就像刚才使用bold,就是加粗的意思,看看官方文档:

2.数字 

文档最后一个值就是用来设置数字的

通过设置文字的粗细,就可以将div设置成标题那么粗了,也能将标题设置成div一样粗细

此时标题的粗细就和div相同了

文字样式

之前在html学了i和em标签,能让文字倾斜

font-style:normal就可以恢复倾斜到正常

 i,em标签也就没啥用了,我们使用CSS的font-style就能实现想要的效果

 html很多的功能都被css架空了

1.2文本属性

文字颜色

之前我们也也经常用color,那么在计算机中是如何表示颜色的呢?

我们日常看到很多光都是混合而成的,白光是红绿蓝三原色等比例混合的

计算机表示颜色典型方式就是RGB的表示方式(red,green,blue)

这里的三原色不是美术中的三原色(红黄蓝),美术中的三原色等比例混合是得到的黑色!

前端中是给RGB各分配了一个字节,每个字节的范围是0~255/0~FF(计算机中的典型表示)

实际表示颜色可以这样写:

 

 通过这三个分量的不同比例的搭配,就可以调和出不同的颜色

到底是用哪个颜色更好看呢?这不是一个技术问题,是一个艺术问题,很多公司都有美工,设计,UI,UED这样的专门用来设计切图的部门,使用PS设计出初稿,再让程序员来实现,PS甚至能直接导出CSS代码

此处的0~255也可以用十六进制来表示

 #ff0000和#f00是相同的

AABBCC能缩写成ABC

AABBCD不能缩写,要求三个分量都是"叠字形式"才能缩写

 颜色也能用英文单词来表示,使用较少,大部分情况需要调和

其它的和颜色相关的属性也是这套规则

文字对齐

文字可以靠左靠右居中对齐

使用text-align属性设置,我们看一个例子

默认情况下是左对齐的

<div class="one">
    这是一个div
   </div>
   
   <style>
   
    .one{
        font-size: 20px;
        font-family: '微软雅黑';
        font-weight: bold;
        text-align: center;
    }

 长文本也会剧中对齐

文本装饰

使用text-decoration这个属性

常用取值:

underline 下划线.

none 啥都没有. 可以给 a 标签去掉下划线.

overline 上划线.

line-through 删除线

 

 

 有的文本默认是什么都没有的,有的文本是默认带下划线的,比如链接就默认带有下划线,然后可以使用 text-decoration: none;来删除下划线

文本缩进

 控制段落的 首行 缩进 (其他行不影响)

text-indent: [值];

 

 

 如果想要缩进两个汉字,就将值设置为40px,因为我们设置的一个字像素是20px

手动设置数字有时候不太方便,还需要根据开始设置的像素而改变

我们不使用像素做单位,使用一个相对的量:em

em是一个相对的量,是以文字为基础来进行设置的

假设文字大小是20px,那么1em=20px,2em=40px

HTML 中展示文字涉及到这几个基准线: 顶线 中线 基线 (相当于英语四线格的倒数第二条线) 底线

 这样就锁进了两个字的距离

 文本缩进的值可以是负数,作用是向左缩进

行高

行高指的是上下文本行之间的基线距离.

HTML 中展示文字涉及到这几个基准线:

顶线 中线 基线 (相当于英语四线格的倒数第二条线) 底线

行高=文字高度+行间距 (上一行的顶线到下一行的顶线之间的距离)

当前行间距明显变大了 

1.3背景属性

背景颜色

background-color: [指定颜色]

                           

 background-image: url(...);

 背景图片默认情况下是平铺的,所以一张照片会重复拼起来覆盖页面

不想平铺使用:background-repeat: no-repeat;取消平铺 

背景位置 

background-position: x y;

想让图片居中,使用:background-position:center center ;

 参数有三种风格:

1. 方位名词: (top, left, right, bottom)

2. 精确单位: 坐标或者百分比(以左上角为原点)

3. 混合单位: 同时包含方位名词和精确单位

 使用坐标系的写法设置背景图位置

背景尺寸

 background-size: length|percentage|cover|contain;

可以填具体的数值: 如 40px 60px 表示宽度为 40px, 高度为 60px

也可以填百分比: 按照父元素的尺寸设置. cover:

把背景图像扩展至足够大,以使背景图像完全覆盖背景区域。背景图像的某些部分也许无法 显示在背景定位区域中。

contain: 把图像图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域.

 

在background系列属性的加持下,div任何一个元素都可以用来显示图片,而且提供的功能比img还更强大

1.4圆角矩形

html元素默认都是一个矩形

有时候需要带有圆角的矩形,圆角矩形也是非常常见的

 我们先设置一个矩形标签

 然后在设置圆角矩形

radius就是圆弧的半径 

打开控制台选中标签,可以将radious设置大一些,到50px的时候,就变成一个胶囊形状了

当radious的大小正好是高度height的一半时,两个内切圆重合了,两个圆弧就会变成一个大圆弧 

如果再将宽度换成和高度一样的,就会变成一个完整的圆

2.元素的显示模式

在 CSS 中, HTML 的标签的显示模式有很多. 此处只重点介绍两个: 块级元素 行内元素

任何一个html标签的显示模式都是可以设置的

块级元素和行内元素的区别:

块级元素独占一行,行内元素时不独占一行的

块级元素高度宽度内外边距都是可以设置的 ,行内元素高度宽度行高都无效,内边距有效,外边距有时有效有时无效

块级元素默认和父元素一样宽,行内元素默认宽度是和里面的内容一样宽.

一般有需要的话会将含行内元素转换成块级元素

2.1块级元素(display:block)

常见的块级元素

h1~h6

p

div

ul

ol

li                                                                                                                                                 ......                                                                                     

块级元素的特点:

独占一行 高度, 宽度, 内外边距, 行高都可以控制. 宽度默认是父级元素宽度的 100% (和父元素一样宽) 是一个容器(盒子), 里面可以放行内和块级元素.

2.2行内元素(display:inline)

常见的元素:a strong b em i del s ins u span ...

特点:

不独占一行, 一行可以显示多个

设置高度, 宽度, 行高无效 左右外边距有效(上下无效). 内边距有效.

默认宽度就是本身的内容

行内元素只能容纳文本和其他行内元素, 不能放块级元素

3.盒子模型

盒子模型描述了html元素的基本布局,任何一个html元素(块级元素)都是一个矩形的盒子,盒子里面可以放内容(文本,其它元素)

这个盒子由这几个部分构成

边框 border 内容 content 内边距 padding 外边距 margin

3.1边框

边框的基础属性:

粗细: border-width

样式: border-style, 默认没边框. solid 实线边框 dashed 虚线边框 dotted 点线边框

颜色: border-color

可以改四个方向的任意边框

 border-top/bottom/left/right

我们看一个设置边框的例子 

<body>
    <div class="one">
        这是一个div
    </div>
    <style>
        .one{
            width: 200px;
            height: 100px;
            background:orange;
            color: #fff;

            text-align: center;
            line-height: 100px;
            border-radius: 10px;

            border: 5px black solid;
        }
    </style>
</body>

border: 5px black solid;

分别设置了边框粗细,颜色,风格

我们设置的属性是: 

 width: 200px;
height: 100px;

 但是我们在网页上看到的:210x110

说明了边框默认情况下会撑大盒子,weight和height表示的是内容部分的尺寸 

可以使用专门的属性防止撑大

 box-sizing: border-box;

 就没有撑大效果了

边框还可以用rgb设置颜色,也不止实线风格

  

 边框风格还有:dotted.是由点构成的线

 看看mdn文档

3.2内边距

 

 默认情况下呢,div是贴近这个边框的,我们可以通过设置内边距来调整

 也能设置四个方面

 将边距设置为20px,发现文本不再贴近边框了

 借助开发者工具,我们可以看到,只有内边距-左被设置为了20px

 如果想给四个方向都设置

padding:10px;表示四个方向都是10px

padding:10px 20px;表示上下内边距是10px,左右内边距是20px 

padding:10px 20px 30px 40px;

 padding:10px 20px 30px 40px;设置的方向是上右下左

3.3外边距

设置的是元素和元素之间的距离

当我们设置了两个元素时,默认他们是紧贴在一起的,可以通过设外边距的距离来控制两个元素间的距离

我们在第一个div下方设置边距

 此时外边距就出来了

也可以在下面的div的上方设置外边距.margin的写法和padding相同,四个方面都可以写.规则也相同

但他还有个特殊用法

把margin-left和margin-right设置为auto(让浏览器自动调节)此时该元素就能够在父元素内居中放置!

我们给第一个div设置一个子元素div

margin-left和margin-right都设置为auto

此时就在父元素内居中放置了,这与文字居中对齐是不同的!

但是垂直方向这样设置不了居中,只能水平方向在父元素居中

总结:

边框border:设置粗细,颜色,风格.四个方向分别设置

内边距padding:四个方向分别设置

外边距 margin:四个方向分别设置

通过这几个属性就可以控制元素之间,元素和内容之间的相对位置了

这些属性都是实现一个页面的基本布局的基本要求

4.弹性布局

是用来实现页面布局的,控制某个元素放到指定位置,像如下网站的布局

 元素之间排列就是布局.实现html布局其实很麻烦,最初html没考虑过布局,只是文本的排列.已经不满足要求了,后来诞生了基于表格的布局,通过表格将页面分成很多部分,将元素放置到对应表格就可以了.后来也被淘汰

然后又出现了基于浮动的布局方式,主要是解决水平方向排列的问题,块级元素是垂直方向排列的,独占一行

弹性布局出现了,也是解决水平方向排列问题的,但是比浮动方式更简洁,功能更强大

还有一种更先进的网格布局,是二维布局,更高版本的表格布局,诞生时间不长,一些浏览器不支持.所以弹性布局还是主流

我们看一个例子

<body>
    <div>
        <span>1</span>
        <span>2</span>
        <span>3</span>
    </div>
    <style>
        div{
            width: 100%;
            height: 150px;
            background: red;
        }
        div>span{
            background-color: green;
        }
    </style>
</body>

 红色的就是div,绿色是span

span是行内元素,在一行内.我们设置了宽度,但是没用,行内元素不能使用width.所以行内元素虽然是在水平方向排列,但是尺寸边距不可控,不适合进行水平布局

行内块级元素可以设置尺寸,边距也生效,但是默认不独占一行,也不适合水平布局.行内块元素和行内元素相同,都会把源码中的换行符当作一个空格,也会对页面元素布局产生影响

 比如12没有换行符,23有换行符,那么12没有空格,23有空格

 

那么如果想要1234678910.......都紧贴在一起,总不能写一行非常长的代码...

所以不适合布局,使用弹性布局就可以解决问题

4.1开启弹性布局

给水平排列的元素的父元素设置flex

 

 设置后子元素就遵守弹性布局

元素设置的高度100px 生效了,并且高度和父元素一样高

 

 此时,弹性容器里面的元素,则不再是"块级"行内元素"了,而是称为"弹性元素",是遵守弹性布局的,可以设置尺寸和边框了

4.2水平方向排列设置

justify-content来设置

flex-strat:靠左排列

flex-end:靠右排列

flex-center:居中排列

space-around:被空白环绕排列

 效果justify-content: space-between:中间有空白环绕

 我们增加yi'x一些元素

 还是能准确计算出空白,然后排列,非常方便

 4.3垂直方向排列设置

align-items来设置

我们给之前的元素设置一个高度

 元素默认是靠上方的

我们设置:align-items: flex-end;靠下

 align-items: center;居中

目前为止,结合html和css已经能实现很多的页面效果了

css基础就介绍到这里

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

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

相关文章

Excel绘制数据对比表格-表格可视化

Word中生成的表格一般比较单调&#xff0c;若一组数据存在对比的情况时&#xff0c;读者/审稿人难以直接通过详细对比数据来分析&#xff0c;此时若可以将该组数据可视化来对比则为好&#xff0c;Excel则可实现该功能。 关于有些期刊需要提供表格中的数据便于复制等情况时&…

新闻发布网站分析及适用场景

在当今数字时代&#xff0c;发布新闻的渠道已经不再局限于传统媒体&#xff0c;越来越多的企业、组织和个人开始使用互联网平台发布新闻稿&#xff0c;以提升品牌知名度和影响力。本文将介绍一些可以发布新闻的网站&#xff0c;并分析其特点和适用场景。一、新闻稿发布平台1.新…

SpringCloud+SpringCloudAlibaba

架构的演进1.1单体架构将所有业务场景的表示层、业务逻辑层和数据访问层放在一个工程中&#xff0c;最终经过编译、打包&#xff0c;部署在一台服务器上。◆ 1.1.1单体架构的优点1&#xff09;部署简单: 由于是完整的结构体&#xff0c;可以直接部署在一个服务器上即可。2&…

启动Idea报Failed to create JVM. JVM Path:

一、如果设置Idea自定义虚拟内存错误导致无法正常打开Idea 1.1、打开自定义Idea虚拟内存&#xff1a;Help - Edit Custom VM Options 1.2、如果idea64.exe.vmoptions设置非法字符&#xff0c;会导致打开idea报错 1.3、打开Idea提示如下 内容如下&#xff1a; ----------------…

信号、signal 函数、sigaction 函数

文章目录1.信号的基本概念2.利用 kill 命令发送信号3.信号处理的相关动作4.信号与 signal 函数4.1 signal 函数示例一4.2 signal 函数示例二5.利用 sigaction 函数进行信号处理6.利用信号处理技术消灭僵尸进程1.信号的基本概念 发送信号是进程之间常用的通信手段。信号用来通知…

算法刷题-只出现一次的数字、输出每天是应该学习还是休息还是锻炼、将有序数组转换为二叉搜索树

只出现一次的数字&#xff08;位运算、数组&#xff09; 给定一个非空整数数组&#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 说明&#xff1a; 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗&…

有java基础学习大数据该如何规划

大数据开发对于Java语言的依赖程度比较高&#xff0c;如果想尝试大数据开发&#xff0c;学习过Java语言就很容易上手 Java是目前使用广泛的编程语言之一&#xff0c;具有的众多特性&#xff0c;特别适合作为大数据应用的开发语言。 目前很多大数据开发团队都在使用Java语言&a…

MySQL——插入加锁/唯一索引插入死锁/批量插入效率

本篇主要介绍MySQL跟加锁相关的一些概念、MySQL执行插入Insert时的加锁过程、唯一索引下批量插入可能导致的死锁情况&#xff0c;以及分别从业务角度和MySQL配置角度介绍提升批量插入的效率的方法&#xff1b;MySQL跟加锁相关的一些概念在介绍MySQL执行插入的加锁过程之前&…

核酸检测信息管理系统

目录前言一、功能与需求分析二、详细设计与实现1、data包&#xff08;1&#xff09;DataDataBase&#xff08;2&#xff09;NaPaNamePassword2、operation包&#xff08;1&#xff09;操作接口&#xff08;2&#xff09;Resident用户功能&#xff08;3&#xff09;Simper用户功…

Java基础总结(jdk,jvm,异常,对象等)

文章目录前言一、Java基础part 1JDKJRE字节码位运算变量成员变量与局部变量的区别&#xff1f;基本数据类型装箱拆箱JVM1.Java内存区域Hotspot对象对象的创建&#xff1a;对象的内存布局part2面向对象面向对象三大特征构造方法接口&#xff1b;抽象类深拷贝和浅拷贝ObjectStrin…

阿里HPCC算法简介

摘要&#xff1a;HPCC&#xff08;高精度拥塞控制&#xff09;基于INT&#xff08;带内遥测&#xff09;技术&#xff0c;可以非常精确的获取网络的拥塞状态&#xff0c;能够实现快速的收敛以及利用带宽&#xff0c;并通过实现“零队列”来实现超低的延迟&#xff0c;下面将主要…

Presto本地开发,plugin的设置

1. 新的问题 之前搭建Presto的本地开发环境时&#xff0c;一直使用config.properties中的plugin.bundles配置项定义需要加载的plugin模块&#xff0c;详细可以参考博客《win10基于IDEA&#xff0c;搭建Presto开发环境》presto服务启动时&#xff0c;指定加载哪些组件&#xff…

kubernetes--监控容器运行时:Falco

目录 Falco介绍 Falco架构 Falco的安装 告警规则示列 威胁场景测试&#xff1a; 监控容器创建的不可信任进程&#xff08;自定义规则&#xff09; Falco支持五种输出告警方式falco.yaml&#xff1a; Falco告警集中化展示&#xff1a; Falco介绍 Falco是一个Linux安全工具…

使用chatgpt来提高你的编程能力,简直如虎添翼

下面大家跟着我的问题&#xff0c;可以跟着我一起向 chatgpt老师学习&#xff0c;相信我的问题可能你也会感兴趣。在Java中&#xff0c;boolean类型的数组默认初始化为false。也就是说&#xff0c;如果你创建了一个boolean类型的数组&#xff0c;但是没有初始化它&#xff0c;那…

嵌入式 Linux进程间通信之信号量

目录 一、信号量 1、信号量概述 2、什么是信号量 3、信号量的分类 4、进程获取共享资源要执行的操作 5、System V IPC 机制&#xff1a;信号量 5.1 semget函数 5.2 semop函数 5.3 semctl函数 一、信号量 1、信号量概述 信号量集&#xff1a;由若干个信号组成的集合&a…

JUC并发编程之Semaphore-应用与深度源码剖析

目录 JUC并发编程之Semaphore-应用与深度源码剖析 1. Semaphore 是什么&#xff1f; 2.怎么使用Semaphore&#xff1f; 2.1构造方法 2.2 重要方法 2.3 基本使用 需求场景 基础版代码实现 tryAcquire()引入代码实现 acquireUninterruptibly(),acquire()对比代码实现 3.…

【C++】C++11——简介|列表初始|简化声明|nullptr与范围for|STL中的变化

文章目录一、C11简介二、列表初始化三、简化声明四、nullptr与范围for五、STL中一些变化一、C11简介 在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1)&#xff0c;使得C03这个名字已经取代了C98称为C11之前的最新C标准名称。不过由于TC1主要是对C98标准中的漏洞进行修复…

Easyrecovery16免费的电脑硬盘恢复数据软件

在我们的日常生活和工作中&#xff0c;很容易发生一些意外情况&#xff0c;比如误删文件。这种情况下&#xff0c;您可能会感到非常困惑和担心&#xff0c;担心文件已经永久丢失&#xff0c;无法恢复。但是&#xff0c;在大多数情况下&#xff0c;即使您误删了文件&#xff0c;…

Nativefier把网页打包成exe

前要&#xff1a; 今天遇到一个需求&#xff0c;之前的应用都是用的h5挂载在企业微信的小应用&#xff0c;但是现在需要电脑运行的exe安装包&#xff01; 所以需要用到nativefier导报工具&#xff1a;nativefier是一个使用electron将网页转换为app的插件&#xff0c;写这篇博客…

二、SpringMVC注解式开发

1. RequestMapping注解 此注解就是来映射服务器访问的路径 可加在方法上,是为此方法注册一个可以访问的名称(路径) 可以加在类上,相当于是包名(虚拟路径),区分不同类中相同的action的名称 可区分get请求和post请求 package com.powernode.controller;import org.springframe…