CSS - 常用属性和布局方式

news2024/11/17 7:28:54

目录

前言

一、常用属性

1.1、字体相关

1.2、文本相关

1.3、背景相关

1.3.1、背景颜色

1.3.2、背景图片

1.4、圆角边框

二、常用布局相关

2.1、display

2.2、盒子模型

2.2.1、基本概念

2.2.2、border 边框

2.2.3、padding 内边距

2.2.4、margin 外边距

2.3、弹性布局

2.4、实际开发常用小技巧


前言


这里推荐一个 CSS 属性网站,里面的样式很全,忘记了也可以在这里查~

CSS 参考手册

一、常用属性


1.1、字体相关

        .one {
            /* 字体家族: 默认是微软雅黑 */
            font-family: "宋体";
            /* 字体大小 */
            font-size: 100px;
            /* 字体粗细 */
            font-weight: 900;
            /* 设置字体倾斜*/
            font-style: italic;
        }

例如 hello ,效果如下 

1.2、文本相关

        /* 文本相关 */
        .two {
            font-size: 100px;
            color: red;
            /* 文本对齐: left左对齐、right右对齐、center居中对齐 */
            text-align: center;
            /* 文本装饰:underline下划线、none去除下划线(a 标签) */
            text-decoration: underline;
            /* 文本缩进 */
            text-indent: 20px;
            /* 行高(行间距) */
            line-height: 100px;
        }

例如 world ,效果如下:

1.3、背景相关

1.3.1、背景颜色

        .three {
            width: 200px;
            height: 500px;
            background-color: green;
        }

1.3.2、背景图片

a)通过 background-image 来设置一个背景图片

        .one {
            width: 2000px;
            height: 2000px;
            background-color: grey;
            background-image: url(img/logo.png);
        }

Ps:background: rgba(0, 0, 0, 0.2);  中前三个是三原色调色,最后一个是半透明程度 

例如一个小鸭子图标,使用 background-image 设置背景图片,默认都是 “平铺” ,就类似于铺地砖一样,效果如下: 

b)可以使用 background-repeat 来禁止平铺,如下:

        .one {
            width: 2000px;
            height: 2000px;
            background-color: grey;
            /* 背景图片 */
            background-image: url(img/logo.png);
            /* 禁止平铺 */
            background-repeat: no-repeat;
        }

c)可以 backgroud-position 来设置背景图的位置

        .one {
            width: 2000px;
            height: 2000px;
            background-color: grey;
            /* 背景图片 */
            background-image: url(img/logo.png);
            /* 禁止平铺 */
            background-repeat: no-repeat;
            /* 设置位置 */
            background-position: center center;
        }

d)设置背景图的大小

        .one {
            width: 2000px;
            height: 2000px;
            background-color: grey;
            /* 背景图片 */
            background-image: url(img/logo.png);
            /* 禁止平铺 */
            background-repeat: no-repeat;
            /* 设置位置 */
            background-position: center center;
            /* contain 表示保证图片原有比例的情况下填满容器,cover 表示一定填满容器(忽略比例)
,当然也可以自己手动指定宽高 */
            /* background-size: contain; */
            background-size: 2000px 2000px;
        }

1.4、圆角边框

a)通过 border-radius 可以设置圆角矩形(值为内切圆半径)

        .one {
            width: 300px;
            height: 300px;
            background-color: greenyellow;
            border-radius: 30px;
        }

b)如果是一个正方形,并且 border-radius 的值刚好是边长的一般,此时就得到了正圆形(头像一般都是这么设置的).

        .one {
            width: 300px;
            height: 300px;
            background-color: greenyellow;
            border-radius: 150px;
        }

二、常用布局相关


2.1、display

  • 块级元素: display: block;   
  • 行级元素:display: inline;
  • 隐藏元素:display: none;

每个 html 元素都会有默认的 display 属性,例如 h1 ~ h6、p、div、ul、ol、li、table...... 默认都是 block 块级元素.  而  a 、span、img 默认都是 inline 行级元素.

区别有很多,主要是以下两个方面:

  1. 块级元素默认独占一行,行内元素默认不独占一行
  2. 块级元素可以设置尺寸(width、height),行内元素则不能.

Ps:因此在实际的开发中,我们经常会把行内元素(比如 span),通过 display: block 改成块级元素.

2.2、盒子模型

2.2.1、基本概念

一个 HTML 元素,就是一个矩形的盒子,组成如下:

Ps:这些属性只有块级元素设置才生效

  • margin:外边距.  可以想象成每个房子(盒子)之间的距离.
  • border:边框.  可以想象成房子的墙壁.
  • padding:内边距. 可以想象成墙壁和内部家具(content)的距离.

2.2.2、border 边框

a)border:边框.  可以想象成房子的墙壁.

    <style>
        .one {
            width: 400px;
            height: 500px;
            background-color: grey;
            /* red边框颜色、20px边框粗细、solid边框为实线 */
            border: red 20px solid;
        }
    </style>

b)边框也可以分开设置

        .one {
            width: 400px;
            height: 500px;
            background-color: grey;
            /* red边框颜色、20px边框粗细、solid边框为实线 */
            /* border: red 20px solid; */
            /* 边框也可以分开设置 */
            border-left: red 20px solid;
            border-right: green 20px dotted;
            border-top: blue 20px dashed;
            border-bottom: orange 20px solid;
        }

边框使用注意事项:

设置了边框粗细以后,虽然给 div 设置的尺寸例如是 500*400,但实际上可能却变成了 540* 340,这是因为边框把元素给撑大了!

在实际的开发中,一般不希望见到这种情况,因此可以使用 box-sizing:border-box 属性来避免此情况.

一般会对所有元素都进行如下设置:

        * {
            box-sizing: border-box;
        }

2.2.3、padding 内边距

a)内边距,就是元素和边框的距离,可以想象成墙壁和内部家具的距离.

        .one {
            width: 400px;
            height: 500px;
            background-color: grey;
            border: red 20px solid;
            padding: 30px;
        }

b)也可以设置给四个方向分别设置

        .one {
            width: 400px;
            height: 500px;
            background-color: grey;
            border: red 20px solid;
            /* padding: 30px; */
            /* 可以分别给四个方向设置 */
            /* padding-left: 20px; */
            /* 给上下设置 30px,左右设置 20px */
            /* padding: 30px 20px; */
            /* 给四个方向分别设置,顺序是 上右下左 顺时针顺序设置 */
            padding: 10px 20px 30px 40px;
        }

2.2.4、margin 外边距

外边距:可以想象成每个房子(盒子)之间的距离,用法和 padding 基本一样

这里讲一个特殊用法:把 margin 左右方向设置为 auto ,可以实现元素水平居中的效果(前提是块级元素,并且有设置 width),但是垂直方向设置为 auto,则不能垂直居中.

        .one {
            width: 400px;
            height: 500px;
            background-color: grey;
            margin: 100px auto;
        }

2.3、弹性布局

前面讲到,块级元素默认是独占一行的(垂直方向排列的),有时又想让块级元素能够水平方向排列,就可以使用弹性布局了.

Ps:行内元素虽然也是水平排列,但是不能设置尺寸.

这里我们只需要知道最基础的三个属性即可.

1.开启弹性布局:display: flex ,某个元素一旦开始了弹性布局,此时内部的子元素(子元素里的子元素不受影响),就会按照水平方向排列.

2.水平方向排列规则:通过 justify-content 属性进行设置. 

例如有以下元素

    <div class="one">
        <div class="two">0</div>
        <div class="two">2</div>
        <div class="two">3</div>
        <div class="two">4</div>
        <div class="two">5</div>
    </div>

    <style>
        .two {
            width: 100px;
            height: 100px;
            background-color: greenyellow;
            border: red 3px solid;
        }
    </style>

justify-content: center居中排列:

justify-content: left靠左:

justify-content: right靠右:

justify-content: space-around 分散排列(不占据两边):

justify-content: space-between(占据两边):

justify-content: space-evenly(全部均分,包括左右):

Ps:一般最常用的就是 space-around

3. align-items:设置垂直方向排列,这个一般就用 center 就可以.

        .one {
            display: flex;
            justify-content: space-around;
            align-items: center;
        }

2.4、实际开发常用小技巧

Ps:如果全局全局属性是 Vue-cli 的工程,那么就在 App.vue 中的 style 添加即可

a)一般在开始写项目的 css 样式时,会先进行以下操作,防止一些干扰.

* {
    /* 防止边框将元素撑大 */
    box-sizing: border-box;
    /* 去除浏览器默认样式 */
    padding: 0;
    margin: 0;
}

b)为了让背景图片能铺满整个屏幕,需要给 body 和 html 标签设置自适应高度(随着浏览器的缩放而缩放)

html {
    height: 100%;
}

body {
    height: 100%;
}

height: 100% 就表示高度和父元素一样高.

解释:由于 body 的父元素时 html,而 html 元素的父元素是浏览器窗口,这里设置 100%,就是让 html 元素和浏览器一样高,再让 body 和 html 一样搞,此时 body 就和浏览器窗口一样高了.

c)版心高度设置:我们在做完导航栏以后,接下来版心的高度该如何设置呢?在 CSS 3 中新出了一个语法    height: calc(100% - 50px);    通过他就可以实现. 

  1. 第一个参数:写100% 就表示父元素的高度.
  2. 第二个参数:50px 就是指导航栏的高度(根据实际情况而定).

 注意:减号两侧必须要加空格.

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

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

相关文章

【Android】MQTT

目录 MQTT 协议简介应用场景优点缺点 部署服务端下载安装包启动服务器 搭建客户端下载SDK添加依赖配置MQTT服务和权限建立连接订阅主题发布消息取消订阅断开连接 MQTT客户端工具最终效果实现传感器数据采集与监测功能思路 MQTT 协议 简介 MQTT&#xff08;Message Queuing Te…

【目标跟踪】多目标跟踪测距

文章目录 前言python代码&#xff08;带注释&#xff09;main.pysort.pykalman.pydistance.py 结语 前言 先放效果图。目标框内左上角&#xff0c;显示的是目标距离相机的纵向距离。目标横向距离、速度已求出&#xff0c;没在图片展示。这里不仅仅实现对目标检测框的跟踪&#…

【Django restframework】django跨域问题,解决PUT/PATCH/DELETE用ajax请求无法提交数据的问题

【Django restframework】django跨域问题&#xff0c;解决PUT/PATCH/DELETE用ajax请求无法提交数据的问题 1 问题描述&#xff1a; 我用restframework(ModelSerializerGenericApiView)开发了一组符合RestFul接口标准的接口&#xff0c;这意味着它将支持客户端发来的GET、POST、…

矢量图形编辑软件 illustrator 2023 mac 中文软件特点

illustrator 2023 mac是一款矢量图形编辑软件&#xff0c;用于创建和编辑排版、图标、标志、插图和其他类型的矢量图形。 illustrator 2023 mac软件特点 矢量图形&#xff1a;illustrator创建的图形是矢量图形&#xff0c;可以无限放大而不失真&#xff0c;这与像素图形编辑软…

【接口测试】Jmeter接口实战-Dubbo接口+造10W数据测试(详细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、Windows环境通…

Harmony 个人中心(页面交互、跳转、导航、容器组件)

个人中心 前言正文一、创建工程二、登录① 更换启动页面② 拓展修饰符③ 页面跳转④ 等待进度条 三、导航栏四、首页① 轮播图② 网格列表 五、我的① 带参数跳转 六、源码 前言 今天是1024&#xff0c;祝各位程序员们&#xff0c;钱多事少离家近&#xff0c;不秃也强bug黄。在…

Plooks大型视频在线一起看网站源码

在前段时间&#xff0c;因为想和异地的朋友一起看电影&#xff0c;但是发现有电影的地方没有一起看功能&#xff0c;有一起看功能的视频网站没有电影&#xff0c;所以就想自己做一个一起看网站&#xff0c;于是就有了Plooks。 Plooks是一个完整的视频网站&#xff0c;其中包括…

linux驱动的IO 模型(高级字符设备一)

IO 是英文 Input 和 Output 的首字母&#xff0c;代表了输入和输出。操作系统&#xff08;Linux&#xff09;负责对计算机的资源进行管理和对进程进行调度&#xff0c;应用程序运行在操作系统上&#xff0c;处于用户空间。应用程序不能直接对硬件进行操作&#xff0c;只能通过操…

uniapp把文件中的内复制到另一个文件中

使用的是Html 5的plus.io.resolveLocalFileSystemURL方法&#xff0c;文档&#xff1a;HTML5 API Reference var soursePath file:///storage/emulated/0/a/;//用于读取var removePath file:///storage/emulated/0/w/;//用于移除w这个文件夹var targetPath file:///storage/…

03初始Docker

一、初始Docker 1.什么是Docker 问题 ①大型项目组件复杂&#xff0c;运行环境复杂&#xff0c;部署时依赖复杂&#xff0c;出现兼容性问题。 ②开发&#xff0c;测试&#xff0c;生产环境有差异。不同的环境操作系统不同 解决 ①Docket将应用、依赖、函数库、配置一起打…

ChatGPT AIGC 完成 Excel多条件求和操作

企业产品销售额是企业在一定时间内通过销售其产品获取的收入总额。 这个指标通常用于衡量企业的销售能力、市场占有率以及企业的健康度。企业产品销售额具体的计算方法是将企业在销售商品或服务时所取得的所有收入加总而得出。 在这个过程中,通常会考虑到可能存在的退货、折…

基于nodejs+vue备忘记账系统mysql

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

上传和下载文件到google drive/Local pc

1 上传 参考&#xff1a;使用 Python 将文件上传到 Google 云端硬盘_迹忆客 Upload file to google drive using Python - CodeSpeedy (没起作用&#xff0c;但可以参考一下) 第 1 步&#xff1a;Google API Playground 我们可以通过搜索 Google 找到更多关于 Google API Pla…

Linux 开机启动一条PHP命令

当你开机的时候要自动的启动一条PHP命令场景&#xff1a;比如webman 你需要手动启动项目进程 你可以这样操作 流程&#xff1a; 1、准备好你要执行的命令 2、将命令写入一个服务文件 3、开机自启这个服务 实例&#xff1a; 1、比如这个命令 /usr/local/php/bin/php /ho…

Class类文件中的“咖啡宝贝”

Class文件是一组以8个字节为基础单位的二进制流&#xff0c;各个数据项目严格按照顺序紧凑地排列在文件之中&#xff0c;中间没有添加任何分隔符&#xff0c;整个Class文件中存储的内容几乎全部是程序运行的必要数据&#xff0c;没有空隙存在。 字节码&#xff08;Byte Code&am…

11、Python -- 列表去重的三种方法

目录 方法1&#xff1a;新列表搜集方法2&#xff1a;利用set集合方法3&#xff1a;使用itertools模块 新列表搜集法 使用set集合去重 使用itertools模块的groupby函数去重 方法1&#xff1a;新列表搜集 &#xff08;1&#xff09;创建新列表 &#xff08;2&#xff09;遍历源列…

Webpack 基础以及常用插件使用方法

目录 一、前言二、修改打包入/出口配置步骤 三、常用插件使用html-webpack-plugin打包 CSS 代码提取 CSS 代码优化压缩过程打包 less 代码打包图片文件 一、前言 本质上&#xff0c;Webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。当 webpack 处理应用程序时…

如何完善文件传输审批流程,降低企业文件安全风险?

在当今高度信息化的时代&#xff0c;数据的价值日益凸显。然而&#xff0c;如果在文件对外传输过程中缺乏必要的审批和留痕记录&#xff0c;可能会带来严重的安全隐患。企业面临巨额的经济损失&#xff1b;其次&#xff0c;企业的品牌形象也受到了严重损害&#xff1b;此外&…

FreeRTOS 任务调度和任务的状态

目录 什么是任务调度&#xff1f; FreeRTOS的任务调度规则是怎样的&#xff1f; 抢占式调度运行过程​编辑 时间片调度运行过程​编辑 任务的状态 任务调度和任务的状态案例分析 什么是任务调度&#xff1f; 调度器就是使用相关的调度算法来决定当前需要执行的哪个任务。…

NotePad格式化SQL语句

NotePad格式化SQL步骤 今日自己在进行导出一些后台执行的SQL语句,但是在NOTEPAD上是未排版的,想想有没有这个插件呢? 1.导入插件 进入后,输入PoorManT-SqlFormatt进行搜索 2.点击格式化SQL 3.执行效果