CSS查缺补漏之《说一说CSS3有哪些新特性?》

news2024/11/18 3:33:51

面试时经常会被用到你了解CSS3新特性嘛,针对此问题,特整理如下~ 

 

背景相关

background-size:用于设置背景图的尺寸

可选属性值有 length、percentage、cover、contain、auto

length用长度值规定背景图片大小,若有两值,则第一个为宽度,第二个为高度,若为一个值,则为宽度,高度为auto

percentage表示相对于背景定位区域的百分比,若有两值,则第一个为宽度,第二个为高度,若为一个值,则为宽度,高度为auto

cover表示保持图像的纵横比并将图像缩放成将完全覆盖背景定位区域的最小大小图片有可能展示不全

contain表示保持图像的纵横比并将图像缩放成将适合背景定位区域的最大大小会导致部分区域无背景图片

auto表示背景图片的原本大小(默认值)

.box {
      width: 100px;
      height: 100px;
      background-color: antiquewhite;
      background-image: url('./1686880776718.jpg');
      padding: 20px;
      background-size: 40px; /* 宽度为40px 高度为auto*/
      background-repeat: no-repeat;
    }

 

.box {
      width: 100px;
      height: 100px;
      background-color: antiquewhite;
      background-image: url('./1686880776718.jpg');
      padding: 20px;
      background-size: 70% 50%; /* 宽度为背景的70% 高度为背景的50%*/
      background-repeat: no-repeat;
    }

 .box {
      width: 100px;
      height: 100px;
      background-color: antiquewhite;
      background-image: url('./1686880776718.jpg');
      padding: 20px;
      background-size: contain; 
/* 图片等比缩放,直到背景图片的宽与容器的宽相等,或者背景图片的高与容器的高相等*/
      background-repeat: no-repeat;
    }

.box {
      width: 100px;
      height: 100px;
      background-color: antiquewhite;
      background-image: url('./1686880776718.jpg');
      padding: 20px;
      background-size: cover; /* 图片等比缩放,直到完全覆盖容器,图片会尽可能全的显示在元素上*/
      background-repeat: no-repeat;
    }

background-origin用于设置背景图的原点(背景图的起始位置),

可选属性值有padding-box| border-box | content-box

padding-box表示从padding区域开始显示(默认值)

border-box表示从border区域开始显示

content-box表示从content区域开始显示

.box {
      width: 200px;
      height: 200px;
      background-color: antiquewhite;
      background-image: url('./1686880776718.jpg');
      padding: 20px;
      border: 10px dotted red;
      background-repeat: no-repeat;
      background-origin: padding-box;
    }

 

background-clip用于指定背景绘制区域

可选属性值有 border-box | padding-box | content-box | text

border-boxb表示从border区域开始向外裁掉背景(默认值)

padding-box表示从padding区域开始向外裁剪背景

content-box表示从content区域开始向外裁剪背景

text表示将背景只呈现在文字上(使用时要将前缀-webkit-

.box {
      width: 200px;
      height: 200px;
      background-color: antiquewhite;
      background-image: url('./1686880776718.jpg');
      padding: 20px;
      border: 10px dotted red;
      background-repeat: no-repeat;
      background-origin: padding-box;
      background-clip: content-box;
    }

.box {
      width: 100px;
      height: 100px;
      background-color: antiquewhite;
      color: transparent; /* 将字体设为透明  */
      font-size: 50px;
      background-image: url('./1686880776718.jpg');
      padding: 20px;
      border: 10px dotted red;
      background-repeat: no-repeat;
      background-origin: padding-box;
      -webkit-background-clip: text;
    }

文本属性

text-shadow: 给文本添加阴影

可选值有:h-shadow v-shadow blur color,其中h-shadow与v-shadow是必填值;

.box {
      width: 100px;
      height: 100px;
      font-size: 30px;
      text-shadow: 2px 2px 10px red;
    }

white-space:用于设置文本换行方式

可选值有:normal(默认值)、pre(原样输出)、pre-wrap(在pre效果的基础上,超出自动换行)、pre-line(在pre效果的基础上,超出自动换行,忽略换行)、nowrap(不换行)

 <div class="box">欢迎你来到学习频道</div>
 .box {
      width: 100px;
      height: 100px;
      font-size: 20px;
      background-color: rgb(248, 248, 60);
      white-space: nowrap;
    }

 

text-overflow:用于设置文本溢出时的呈现模式

可选值有:clip(裁剪,默认值)、ellipsis(溢出部分替换为....) 

要使该属性生效,需要定义overflow为非visible值,white-space设为nowrap

.box {
      width: 100px;
      height: 100px;
      font-size: 20px;
      background-color: rgb(248, 248, 60);
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis;
    }

text-decoration:文本修饰符合属性,包含text-decoration-line、text-decoration-style以及text-decoration-color

text-decoration-line表示文本修饰线的位置,可选值有none(默认)、underline(下划线)、overline(上划线)、line-through(贯穿线);-----必填项

text-decoration-style表示文本修饰线的形状,可选值有solid(默认)、double(双线)、dotted(点状)、dashed(虚线)、wavy(波浪线);

text-decoration-color表示文本修饰线的颜色

.box {
      width: 100px;
      height: 100px;
      font-size: 20px;
      text-decoration: overline;
    }

 

.box {
      width: 100px;
      height: 100px;
      font-size: 20px;
      text-decoration: line-through red;
    }

 .box {
      width: 100px;
      height: 100px;
      font-size: 20px;
      text-decoration: red underline wavy;
    }

 

.box {
      width: 100px;
      height: 100px;
      font-size: 20px;
      text-decoration: line-through overline red wavy;
    }

text-stroke-width:表示文本描边的宽度;

text-stroke-color:表示文本描边的颜色;

text-stroke:复合属性,设置文本描边的宽度和颜色

注意:文本描边属性仅支持webkit内核浏览器,使用时前面都要加上-webkit-前缀

.box {
   width: 100px;
   height: 100px;
   font-size: 20px;
   -webkit-text-stroke: 1px;
   -webkit-text-stroke-color: rgba(244, 143, 20, 0.932);
}

 

渐变函数

渐变分为线性渐变、径向渐变

线性渐变(linear-gradient)有两种方式设置渐变形式(一种通过方向关键词):

      linear-gradient(direction,color-stop1,color-stop2,...., color-stopn),direction的可选值可以有to right(从左到右)、to left(从右到左)、to bottom right(从左上角到右下角)、to bottom top(从左下角到右上角)、to top(从下到上)、to bottom(从上到下),默认方向为从上到下渐变;

.box {
      width: 100px;
      height: 100px;
      background-image: linear-gradient(red, yellow) /* 从上到下由红变黄渐变 */
    }

 .box {
      width: 100px;
      height: 100px;
      background-image: linear-gradient(to right, red, yellow, blue) /* 从左到右由红变黄变蓝渐变 */
    }

 

 .box {
      width: 100px;
      height: 100px;
      background-image: linear-gradient(to right top,red, yellow, blue) /* 从左下角到右上角由红变黄变蓝渐变 */
    }

设置渐变形式(一种通过角度)

linear-gradient(angle,color-stop1,color-stop2,...., color-stopn)表示从指定角度开始渐变,默认为0

 角度是如下图所示,即0deg将创建一个从下到上的渐变,90deg将创建一个从左到右的渐变;

 

 .box {
      width: 100px;
      height: 100px;
      background-image: linear-gradient(0deg,red, yellow, blue) /* 从下到上由红变黄边蓝渐变 */
    }

.box {
      width: 100px;
      height: 100px;
      background-image: linear-gradient(45deg,red, yellow, blue) /* 从下到上由红变黄边蓝渐变 */
    }

 

.box {
      width: 100px;
      height: 100px;
      background-image: linear-gradient(-45deg,red, yellow, blue) /* 从下到上由红变黄边蓝渐变 */
    }

可以在颜色后面设置颜色开始渐变的位置,可用像素值表示或用%表示

 .box {
      width: 100px;
      height: 100px;
      background-image: linear-gradient(to top,red 0px, yellow 50px, blue 100px) 
      /* 从下到上由红变黄边蓝渐变, 距离底部0px红色,距离底部50px 黄色,距离底部100px为蓝色 */
    }

.box {
      width: 100px;
      height: 100px;
      background-image: linear-gradient(to top,red, yellow 50%, blue 100%) 
      /* 从下到上由红变黄边蓝渐变, 距离底部高度的0%红色,距离底部高度的50% 黄色,距离底部高度的100%为蓝色 */
    }

线性渐变(linear-gradient)有两种方式设置渐变形式(一种通过方向关键词):

      radial-gradient(shape size at position,start-color,color-stop2,...., color-stopn),默认渐变的中心是center,形状是ellipse,渐变的大小是farthest-corner,表示到最远的位置

shape可选值为 :circle、ellipse

size 定义了四个可选值: closest-side、farthest-side、closest-corner、farthest-corner

.box {
      width: 200px;
      height: 100px;
      background-image: radial-gradient(red, yellow, blue)
    }

 

.box {
      width: 200px;
      height: 100px;
      background-image: radial-gradient(circle, red, yellow, blue)
    }

 

.box {
      width: 200px;
      height: 100px;
      background-image: radial-gradient(at 100px 20px, red, yellow, blue)
      /* 在宽100px 高20px的地方开始径向渐变,即为圆心 */
    }

 

 .box {
      width: 200px;
      height: 100px;
      background-image: radial-gradient(closest-side at 100px 20px, red, yellow, blue)
    }

 

线性渐变与径向渐变都可以设置重复渐变:

重复线性渐变repeat-linear-gradient()

重复径向渐变repeat-radial-gradient()

重复是指在没有发生渐变的区域开始渐变

.box {
      width: 200px;
      height: 100px;
      background-image: repeating-radial-gradient(red 10px, yellow 50px, blue 100px)
    }

.box {
      width: 200px;
      height: 100px;
      background-image: repeating-linear-gradient(red 10px, yellow 50px, blue 100px)
    }

  .box {
      width: 200px;
      height: 200px;
      border: 1px solid gray;
      margin: 0 auto;
      padding: 20px;
      background-image: repeating-linear-gradient(transparent 0px, transparent 29px, gray 30px );
      background-clip: content-box
    }

 

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

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

相关文章

阿里云无影云电脑使用教程(3分钟新手指南)

​阿里云无影云电脑即无影云桌面&#xff0c;云桌面如何使用&#xff1f;云电脑创建后没有用户名和密码&#xff0c;先创建用户设置密码&#xff0c;才可以登录连接到云桌面。云桌面想要访问公网还需要开通互联网访问功能。阿里云百科来详细说下阿里云无影云电脑从选择、创建用…

项目管理,如何做到流程标准化?

项目管理如何做到刘春标准化&#xff1f;要想做好项目管理&#xff0c;可以借助于信息化工具&#xff0c;从以下方面入手&#xff1a; 1.明确目标 在项目管理中&#xff0c;确定团队的目标是非常重要的。团队需要制定一个清晰、可衡量的目标&#xff0c;以便能够全力以赴地实…

sqlserver------数据库的存储过程(练习)

对于数据库的存储过程之前的专题有讲过 这里具体讲述存储过程的编写方法&#xff1a; 例题&#xff1a;有heat表和eatables两张表&#xff0c;分别为&#xff1a; eatables heat&#xff1a;protein&#xff08;蛋白质&#xff09;&#xff0c;fat&#xff08;脂肪&#xff…

【计算机网络自顶向下】如何学好计网-第四章网络层

第四章 网络层 学习目的&#xff1a; 理解网络层服务的主要原理 网络岑服务模型转发&#xff08;forwarding&#xff09;和路由&#xff08;routing&#xff09;的概念对比路由器的工作原理路由算法及路由协议 完成简单的组网及IP地址和路由配置 4.1 引言 网络层提供的功能…

前端vue自定义简单实用下拉筛选 下拉菜单

前端vue自定义简单实用下拉筛选 下拉菜单, 下载完整代码请访问: https://ext.dcloud.net.cn/plugin?id13020 效果图如下: #### 使用方法 使用方法 <!-- titleArr: 选择项数组 dropArr: 下拉项数组 finishDropClick: 下拉筛选完成事件--> <ccDropDownMenu :titleA…

解密Prompt系列3. 冻结LM微调Prompt: Prefix-tuning Prompt-tuning P-tuning

这一章我们介绍在下游任务微调中固定LM参数&#xff0c;只微调Prompt的相关模型。这类模型的优势很直观就是微调的参数量小&#xff0c;能大幅降低LLM的微调参数量&#xff0c;是轻量级的微调替代品。和前两章微调LM和全部冻结的prompt模板相比&#xff0c;微调Prompt范式最大的…

21. 算法之动态规划

1. 概念 动态规划(Dynamic Programming)&#xff0c;是一种分阶段求解的方法。动态规划算法是通过拆分问题&#xff0c;定义问题状态和状态之间的关系&#xff0c;使得问题能够以递推&#xff08;或者说分治&#xff09; 的方式去解决。 首先是拆分问题&#xff0c;就是根据问…

生产报工软件怎么选?一定要看这几点,值得收藏!

生产报工软件怎么选&#xff1f; 适合项目型企业&#xff0c;支持移动端报工&#xff1b;可以进行工时上报、工时统计、人力成本核算&#xff1b;满足中大型企业需求。 题主的要求可以说非常具有代表性了&#xff0c;今天我们就来看一看如何寻找到这样的报工系统。 一、为什…

Alibaba Cloud Linux安装Nginx以及常用命令

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、安装C编译器&#xff0c;以及所需要的库二、下载和安装PCRE三.Ngxin相关命令 总结 前言 提示&#xff1a;系统是Alibaba Cloud Linux 3.2104 LTS 64位&…

批量更新状态功能在设备巡检、人员管理、工序流转等场景的应用

二维码已被应用在了各式各样的场景中&#xff0c;譬如教育培训、会议签到、产品展示等等。其中有很多场景需要一次性运用到大量的二维码&#xff0c;如人员管理、工序流转、设备巡检等&#xff0c;可以使用批量添加记录功能使工作效率近一步提升。 原先为一批二维码添加记录时…

dubbo3 Cluster wrapper初始化及extensionloader分析

从以下代码&#xff0c;可以看到dubbo默认的服务是failover SPI("failover") public interface Cluster {String DEFAULT "failover";Adaptive<T> Invoker<T> join(Directory<T> directory, boolean buildFilterChain) throws RpcExce…

达梦MPP集群搭建、DEM管理工具搭建MPP集群应用

说明... 3 两节点MPP集群手动搭建... 4 1、配置dm.ini 4 2、配置dmmal.ini 5 3、配置dmmpp.ctl 5 4、启动EP01和EP02数据库实例&#xff0c;系统搭建完成。... 6 MPP使用&#xff1a;... 6 使用DEM管理系统搭建MPP3节点集群... 10 一、达梦DEM部署... 11 1、创建DEM库…

计算机网络管理 常见的计算机网络管理工具snmputil,Mib browser,SNMPc管理软件的功能和异同

⬜⬜⬜ &#x1f430;&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;(*^▽^*)欢迎光临 &#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;&#x1f430;⬜⬜⬜ ✏️write in front✏️ &#x1f4dd;个人主页&#xff1a;陈丹宇jmu &am…

【C++ 基础篇:25】:【重要模板】C++ 算术(赋值)运算符重载及自增自减运算符重载【以 Date 日期类为例】

系列文章说明 本系列 C 相关文章 仅为笔者学习笔记记录&#xff0c;用自己的理解记录学习&#xff01;C 学习系列将分为三个阶段&#xff1a;基础篇、STL 篇、高阶数据结构与算法篇&#xff0c;相关重点内容如下&#xff1a; 基础篇&#xff1a;类与对象&#xff08;涉及C的三大…

LabVIEW开发监测太阳能电池和损伤检测

LabVIEW开发监测太阳能电池和损伤检测 使用LabVEW监测太阳能电池的实时数据&#xff0c;利用LabVIEW实现太阳能跟踪和损伤检测。使用了太阳能电池板&#xff0c;Arduino UNO板&#xff0c;电压&#xff08;0-25V&#xff09;传感器LDR&#xff0c;温度传感器和伺服电机。Solar…

基于ubuntu20.4搭建的K8S集群新增工作节点带GPU显卡过程记录

基于ubuntu20.4搭建的K8S集群新增工作节点带GPU显卡过程记录 1、创建虚拟机引导选择efi 2、添加显卡,修改虚拟机-高级参数,添加以下两个参数 pciPassthru.64bitMMIOSizeGB:192 pciPassthru.use64bitMMIO:TRUE否则可能无法开机。 3、添加直通显卡,安装显卡驱动。 3.1、查…

Redis集群详细介绍从0开始-包括集群的Jedis开发

集群 为什么需要集群-高可用性 1、生产环境的实际需求和问题 容量不够&#xff0c;redis 如何进行扩容&#xff1f;并发写操作&#xff0c; redis 如何分摊&#xff1f;主从模式&#xff0c;薪火相传模式&#xff0c;主机宕机&#xff0c;会导致ip 地址发生变化&#xff0c;…

linuxOPS系统服务_linux文件权限管理

什么是权限 **权限&#xff1a;**在计算机系统中&#xff0c;权限是指某个计算机用户具有使用软件资源的权利。 权限的目的 文件权限的设置目的&#xff1a;是想让某个用户有权利操作文件 权限的分类 普通权限rwx 用户正常情况去操作文件所具有的权限 高级权限st 用户对某…

FPGA基础知识-任务和函数

目录 学习目标 学习内容 1.任务和函数的区别 2.任务 3.函数 学习时间 学习总结 学习目标&#xff1a; 1.理解任务和函数之间的区别。 2.理解定义任务所需的条件&#xff0c;学会任务的声明和调用。 3.理解定义函数所需的条件&#xff0e;学会函数的声明和调用。 学习…

JavaScript之ES6高级语法(四)

本文是我在学习过程中记录学习的点点滴滴&#xff0c;目的是为了学完之后巩固一下顺便也和大家分享一下&#xff0c;日后忘记了也可以方便快速的复习。 ES6高级语法(四&#xff09; 前言一、深浅拷贝1.1、浅拷贝1.2、深拷贝1.2.1、递归实现深拷贝1.2.2、js库lodash里面cloneDee…