css揭秘-学习小结

news2025/1/13 13:30:34

0 引言-编码技巧

尽量用相对单位,比如字体大小和行高,如果是绝对值每次两个都要改,如果是相对值则只要改一个。

0.1 代码易维护和代码量不可兼得

为一个元素添加宽10px的边框,左侧不带边框,有两种方案

border-width: 10px 10px 10px 0;

border-width: 10px;

border-left-width: 0;

一个代码少但改的多,一个代码多但改的少

0.2 继承

可以使用inherit关键字,使元素继承父元素的属性:

input, select, button {font:inherit}

0.3 相对单位的使用

比如百分比,em,或视口相关单位:vw, vh, vmin, vmax

0.4 合理使用简写

不少属性可以简写到一个属性里,此处推荐合理使用简写。因为如果属性展开写,可能会遗漏,也可能属性太多改的麻烦,相互影响等,总之,有好有坏

当多个属性使用相同值时,由于相同属性具有扩散作用,可以简写成一个

1 背景与边框

1.1 半透明边框

hsla颜色:通过四个值描述颜色:hsla(0, 0%, 50%, 0.5):第一个元素表示色相,决定是什么颜色,第二个元素是饱和度,0-100%,越高越饱满,越低越灰色,第三个元素是亮度,第四个元素是透明度,值范围0-1

问题 即 如何实现半透明色

一个解决方案如下

border: 10px solid hsla(0, 0%, 100%, .5);
background: white;

但边框的半透明透过来的是background的白色,结果背景的白色遮挡了背景图片,css3的background-clip可解决此问题,该属性会将透明区域的背景色用边框外沿剪掉,背景色就能透过来了

border: 10px solid hsla(0, 0%, 100%, .5)
background: white;
background-clip: padding-box;

1.2 多重边框

box-shadow基本用法:box-shadow属性用来给元素添加阴影效果,参数如下:box-shadow: h-shadow v-shadow blur spread color inset; 

h-shadow表示在水平方向投影大小;v-shadow表示在垂直方向投影大小;blur表示阴影模糊程度;spread表示阴影扩张程度,color表示阴影颜色;inset默认是外阴影,如果设置,可设为内阴影

background: yellowgreen;
box-shadow: 0 0 0 10px #655

这个效果是#655颜色宽10px的实线边框,背景色是黄绿

因为box-shadow属性支持逗号分割,可以再弄一个边框:

background: yellowgreen;
box-shadow: 0 0 0 10px #655, 0 0 0 15px #328

需注意的是,逗号分割的边框,第一个在最顶层,往后就是底层的

还需注意,box-shadow的视觉效果和border这种边框效果可相似,但box-shadow的阴影没有边框宽度属性,边框也不会出发鼠标等移动事件

box-shadow只能模拟实线边框,无法模拟虚线边框

outline属性可以在border外再描一层边,注意outline和box-shadow重叠时,outline盖在box-shadow上面

1.3 灵活的背景定位

background-position

如果想针对某个地方做偏移,可以这样:

background: url('test.png') no-repeat #58a;
background-position: right 20px bottom 30px;

这是css3支持的,有的不支持此属性,元素会贴在左上角,可以在background里添加值right bottom,这样不支持background-position时,元素仍能在右下角

background-origin

background-position的位置是相对padding-box的角,background-origin用来定义background-position相对的是哪个角,所以它默认值是padding-box:

当padding和background-position值一样时,每次需要改三个值,可改background-origin为content-box将background-position的值设为相对content角,则不需要要再给bp定义方向上的偏移值

calc

通过calc计算的边距是相对左上角而言的,注意,calc运算符左右一定要加空白符,不然解析错误

1.4 边框内圆角

用两个div元素可方便实现内圆角外直角的效果

怎样用一个div实现,而不是用两个div?答案是外直角用outline实现,内圆角和直角的间隙填充outline相同颜色即可

7 结构与布局

7.1 垂直居中

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

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

相关文章

中科大保卫处招聘要求硕士学历:考研还有用吗?

希望同学们在看到类似这样的新闻或者热搜的时候,首先要明白很多事情都存在“幸存者偏差”。 我们不能“管中窥豹”,用特例去认识整体,当然,特例的出现或者存在也是有一定道理的,我们也不能完全忽视特例的存在。 所以…

QPieSeries-饼状图

void Widget::initWindowQPie() {//[1] 创建饼图QPieSeries* pSeries new QPieSeries();pSeries->append("苹果", 15);pSeries->append("西瓜", 30);pSeries->append("香蕉", 10);pSeries->append("葡萄", 25);pSeries-&…

文件解析漏洞—IIS解析漏洞—IIS6.X

目录 方式 1:目录解析 方式 2:畸形文件解析 方式 3:PUT 上传漏洞(123.asp;.jpg 解析成 asp) 环境:Windows server 2003 添加 IIS 管理工具——打开 IIS——添加网站 创建完成之后,右击创建的…

2024年音频剪辑必备:五大最佳音频编辑软件精选!

在数字时代,音频剪辑已成为创意表达的重要工具。无论是音乐制作、播客编辑还是视频后期,一款优秀的音频剪辑软件都是不可或缺的。推荐五款备受推崇的音频剪辑工具。 福昕音频剪辑 链接:https://www.foxitsoftware.cn/audio-clip/ 福昕音频…

arasan CAN2.0 CAN FD user guide详解

1. 引言 1.1 概览 Arasan 的 Controller Area Network - Flexible Data (CAN-FD) 控制器 IP 实现了 CAN 2.0A、CAN 2.0B 以及高性能 CAN-FD (Flexible Data Rate) 协议。它符合非 ISO CAN-FD 由 Bosch 提出的标准以及 ISO11898-1:2015 DIS 标准。它可以集成到需要 CAN 连接性…

IDEA切换分支,会影响当前在跑的项目吗?

说明:本文测试,在IDEA中运行项目,然后切换分支,是否会影响当前正在跑的项目 准备工作 首先,创建一个Git项目,接口如下: import org.springframework.web.bind.annotation.GetMapping; import…

【网络安全】副业兼职日入12k,网安人不接私活就太可惜了!

暑假来了,很多同学后台私信我求做兼职的路子,这里,我整理了一份详细攻略,请大家务必查收,这可能会帮你把几个学期的生活费都赚够! Up刚工作就开始做挖漏洞兼职,最高一次赚了12k,后面…

bootcamp和虚拟机哪个更好 bootcamp和虚拟机的性能差距 MacBook装双系统和虚拟机有什么区别

在当今数字化时代,对于部分使用Mac电脑的用户来说,选择如何在Mac系统中运行Windows或其他操作系统能节省大量精力。双系统(Boot Camp或其他多引导方案)和虚拟机是两种常见的方法。 一、Boot Camp(启动转换助手&#xf…

订单状态统计业务

文章目录 概要整体架构流程技术细节小结 概要 订单状态统计是电子商务、供应链管理、客户服务等多个领域中的一项核心业务需求. 需求分析以及接口设计 技术细节 1.Controller层: ApiOperation("各个状态的订单统计")GetMapping("/statistics")public Re…

step:菜单栏静态加载和动态加载

文章目录 文章介绍静态加载动态加载补充材料 文章介绍 对比静态加载和动态加载。 主界面main.qml之前使用的是动态加载,动态加载导致的问题:菜单栏选择界面切换时,之前的界面内容被清空。 修改方法:将动态加载改为静态加载 左边是…

什么?陶瓷也可以用来存储数据了?

现在是一个数据指数增长的时代,根据IDC数据预测,2025年全世界将产生175ZB的数据。 这里面大部分数据是不需要存储的,在2025预计每年需要存储11ZB的数据。换算个容易理解的说法,1ZB是10^18Bytes, 相当于要写5556万块容量18TB的硬盘…

数据结构(邓俊辉)学习笔记】词典 01—— 散列

文章目录 1. 从服务到电话2. 循值访问3. 数组4. 原理5. 散列6. 冲突 1. 从服务到电话 现在进入新的一章词典。将学习实现词典 adt 的重要技术,也就是散列。我们将看到散列实际上并不是一种简单的技术,从某种意义上讲,它甚至是一种思想&#x…

【数据结构算法经典题目刨析(c语言)】随机链表的复制(图文详解)

💓 博客主页:C-SDN花园GGbond ⏩ 文章专栏:数据结构经典题目刨析(c语言) 目录 一、题目描述 二、思路分析 三、代码实现 一、题目描述 二、思路分析 要完成一个带随机指针的链表的复制,有一个巧妙的办法:分三步走 1.完成节…

钉耙编程(3)

1001深度自同构 Problem Description 对于无向图中的点,定义一个点的度为与其相连的边的条数。 对于一棵有根树,定义一个点的深度为该点到根的距离。 对于由若干有根树构成的森林,定义该森林是深度自同构的,当且仅当森林中任意…

[Java]基础语法

注释 注释就是程序中对代码进行解释说明的文字 生效范围: 注释不影响程序执行, 因为运行的字节码文件中不保留注释 字面量 数据在程序中的书写格式称为字面量 变量 在内存中开辟一块区域, 用来存储数据, 这块空间称为变量 定义变量 使用变量 变量的优势 便于数据的扩展和…

【LeetCode每日一题】搜索旋转排序数组

分析 二分 以4 5 6 7 0 1 2为例,发现将数组分割成两半后,总存在一边是有序 ,有序的那一部分可以使用二分 4|5 6 7 0 1 2 4 5|6 7 0 1 2 4 5 6|7 0 1 2 4 5 6 7|0 1 2 4 5 6 7 0|1 2 4 5 6 7 0 1|2分为三种情况 因为没有重复元素&#xff0…

RAGflow:开源AI框架的创新与应用

在当今科技飞速发展的时代,人工智能(AI)已经成为各行各业不可或缺的一部分。特别是在文档处理和数据分析领域,AI的应用更是无处不在。今天,我要向大家介绍一个开源的AI框架引擎——RAGflow。它能够在深度文档理解方面执…

情感推理在医疗领域的应用

关键词:情感推理、情感分类、多模态大模型、语音识别、思维链 医疗领域中人工智能(AI)的决策透明度至关重要,因为错误可能带来严重后果。这种透明度有助于建立AI与用户之间的信任。情感分析是自然语言处理(NLP&am…

【通俗理解】马尔科夫毯:信息屏障与状态独立性的守护者

【通俗理解】马尔科夫毯:信息屏障与状态独立性的守护者 马尔科夫毯的通俗比喻 你可以把马尔科夫毯想象成一个“信息屏障”,它隔绝了系统内部与外部的信息交流。在这个屏障之内,系统的状态是独立的,不受外界影响。 马尔科夫毯的核心…

【Kylin使用心得的介绍】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 👻Kylin 👻Kylin是一款Linux发行版,由中国国内的开发者团队…