CSS学习记录23

CSS用户界面

CSS调整大小

resize 属性规定元素是否应(以及如何)被用户调整大小。下例只允许用户调整 <div> 元素的宽度:

div {resize: horizontal;overflow: auto;
}

下例只允许用户调整 <div> 元素的高度:

div {resize: vertical;overflow: auto;
}

下例允许用户能够调整 <div> 元素的高度和宽度:

div {resize: both;overflow: auto;
}

在许多浏览器中,<textarea> 默认为可调整大小。在这里,可以使用 resize 属性来禁用这种可缩放性:

textarea {resize: none;
}

CSS 轮廓偏移 

outline-offset 属性在轮廓与元素的边框之间添加空间。

注意:轮廓与边框不同!轮廓线是在元素边框之外绘制的,并且可能与其他内容重叠。同时,轮廓也不是元素尺寸的一部分:元素的总宽度和高度不受轮廓线宽度的影响。

下面的例子使用 outline-offset 属性添加了边框和轮廓之间的空间:

div.ex1 {margin: 20px;border: 1px solid black;outline: 4px solid red;outline-offset: 15px;
} div.ex2 {margin: 10px;border: 1px solid black;outline: 5px dashed blue;outline-offset: 5px;
}

CSS变量

var() 函数用于插入 CSS 变量的值。 CSS 变量可以访问DOM,这意味着您可以创建具有局部或全局范围的变量,使用 JavaScript 来修改变量,以及基于媒体查询来修改变量。

使用CSS变量的一种好方法涉及设计的颜色。 您可以将它们放在变量中,而不必一遍又一遍地复制和粘贴相同地颜色。

var() 函数的语法

var() 函数用于插入CSS变量的值。var() 函数的语法如下:

var(name, value)
描述
name必需。变量名(以两条破折号开头)。
value可选。回退值(在未找到变量时使用)。

注释:变量名称必须以两个破折号 (--) 开头,且区分大小写!

var() 如何工作

首先:CSS变量可以有全局和局部作用域。 全局变量可以在整个文档中进行访问/使用,而局部变量只能在声明它的选择器内部使用。

如需创建具有全局作用域的变量,请在 :root 选择器中声明它。 :root 选择器匹配文档的根元素。如需创建具有局部作用域的变量,请在将要使用它的选择器中声明它。

首先,声明两个全局变量(--blue 和 --white)。 然后,我们使用 var() 函数稍后在样式表中插入变量的值:

:root {--blue: #1e90ff;--white: #ffffff;
}body { background-color: var(--blue); }h2 { border-bottom: 2px solid var(--blue); }.container {color: var(--blue);background-color: var(--white);padding: 15px;
}button {background-color: var(--white);color: var(--blue);border: 1px solid var(--blue);padding: 5px;
}

使用var() 有如下优势:

  • 使代码更易于阅读(更容易理解)
  • 使修改颜色值更加容易

如需将蓝色和白色改为较为柔和的蓝色和白色,您只需要修改两个变量值。CSS 变量也可以在特定的选择器中定义。这些变量仅在定义它们的选择器及其子元素中有效:

.card {  --card-bg: #ffffff; /* 局部变量 */  background-color: var(--card-bg);  padding: 20px;  border: 1px solid #ddd;  
}  .card:hover {  --card-bg: #f0f0f0; /* 更新局部变量 */  background-color: var(--card-bg);  
}  

CSS覆盖变量

用局部变量覆盖全局变量

有时,我们希望变量仅在页面的特定部分中进行更改。 假设我们想要按钮元素使用不同的蓝色。那么,我们可以在 button 选择器内重新声明 --blue 变量。 当我们在这个选择器中使用 var(--blue) 时,它将使用此处声明的局部 --blue变量值。

我们看到局部的 --blue 变量会覆盖button 元素的全局 --blue 变量:

:root {--blue: #1e90ff;--white: #ffffff;
}body {background-color: var(--blue);
}h2 {border-bottom: 2px solid var(--blue);
}.container {color: var(--blue);background-color: var(--white);padding: 15px;
}button {--blue: #0000ff;background-color: var(--white);color: var(--blue);border: 1px solid var(--blue);padding: 5px;
}

添加一个新的局部变量

如果只在一个地方使用一个变量,我们也可以声明一个新的局部变量。

:root {--blue: #1e90ff;--white: #ffffff;
}body {background-color: var(--blue);
}h2 {border-bottom: 2px solid var(--blue);
}.container {color: var(--blue);background-color: var(--white);padding: 15px;
}button {--button-blue: #0000ff; /*新的局部变量*/background-color: var(--white);color: var(--button-blue);border: 1px solid var(--button-blue);padding: 5px;

使用JavaScript 更改变量

CSS变量可以访问DOM,这意味着您可以通过 JavaScript 更改它们。这个例子说明了如何创建脚本来显示并更改实例中的 --blue 变量。

<script>
// 获取根元素
var r = document.querySelector(':root');// 创建获取变量值的函数
function myFunction_get() {// Get the styles (properties and values) for the rootvar rs = getComputedStyle(r);// Alert the value of the --blue variablealert("The value of --blue is: " + rs.getPropertyValue('--blue'));
}// 创建设置变量值的函数
function myFunction_set() {// Set the value of variable --blue to another value (in this case "lightblue")r.style.setProperty('--blue', 'lightblue');
}
</script>
<div class="container"><h2>Welcome to Shanghai!</h2><p>Shanghai is one of the four direct-administered municipalities of the People's Republic of China.</p><p>Shanghai is one of the four direct-administered municipalities of the People's Republic of China.</p><p><button>Yes</button><button>No</button></p>
</div>
<br><button type="button" onclick="myFunction_get()">使用 JavaScript 来获取 CSS 变量</button>
<button type="button" onclick="myFunction_set()">使用 JavaScript 来更改 CSS 变量</button>

在媒体查询中使用变量

现在,我们希望在媒体查询中修改变量值。

提示:媒体查询旨在为不同设备(显示器、平板电脑、手机等)定义不同的样式规则。将在之后的学习中讲到。

在这里,首先为 .container类声明一个名为 --fontsize 的新局部变量。我们将其值设置为25像素。然后在 .container 类中进一步使用它。然后,创建一个@media规则,内容为”当浏览器的宽度为 450px 或更宽时,将 .container 类的 --fontsize 变量值更改为50px。"

/* 变量声明 */
:root {--blue: #1e90ff;--white: #ffffff;
}.container {--fontsize: 25px;
}/* 样式 */
body {background-color: var(--blue);
}h2 {border-bottom: 2px solid var(--blue);
}.container {color: var(--blue);background-color: var(--white);padding: 15px;font-size: var(--fontsize);
}@media screen and (min-width: 450px) {.container {--fontsize: 50px;}
}

这是另一个例子,在其中还更改了@media 规则中的 --blue 变量的值:

/* 变量声明 */
:root {--blue: #1e90ff;--white: #ffffff;
}.container {--fontsize: 25px;
}/* 样式 */
body {background-color: var(--blue);
}h2 {border-bottom: 2px solid var(--blue);
}.container {color: var(--blue);background-color: var(--white);padding: 15px;font-size: var(--fontsize);
}@media screen and (min-width: 600px) {.container {--fontsize: 50px;}:root {--blue: lightblue;}
}

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

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

相关文章

Linux菜鸟级常用的基本指令和基础知识

前言:很多Linux初学者都会头疼于指令太多记不住&#xff0c;笔者刚学习Linux时也是如此&#xff0c;学习Linux指令时&#xff0c;学了后面的指令&#xff0c;前面的指令也会忘的差不多了&#xff0c;针对于以上这些情况&#xff0c;笔者今天来分享一篇Linux菜鸟级的常用指令的博…

【数据仓库】hive on Tez配置

hive on Tez 搭建 前提是hive4.0hadoop3.2.2数仓已搭建完成&#xff0c;现在只是更换其执行引擎 为Tez。搭建可参考【数据仓库】hive hadoop数仓搭建实践文章。 Tez 下载 下载地址 https://archive.apache.org/dist/tez/ 官网地址 https://tez.apache.org/releases/apac…

《机器学习》--线性回归模型详解

线性回归模型是机器学习中的一种重要算法&#xff0c;以下是对其的详细解释&#xff1a; 一、定义与原理 线性回归&#xff08;Linear Regression&#xff09;是利用数理统计中回归分析&#xff0c;来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。线性回归…

电子价签会是零售界的下一个主流?【新立电子】

电子价签&#xff0c;作为一种能够替代传统纸质标签的数字显示屏&#xff0c;已经在零售行业中展现出其巨大的潜力。它具有实时更新、集中管理、高效节能的特点&#xff0c;实现价格的实时更新&#xff0c;大大减少更新价格的工作量和时间。为消费者带来更加便捷、准确的购物体…

sql server期末复习

表操作 创建create 删除drop 修改alter 数据操作 查询 select from <tableName> 插入 insert into <tableName> values 修改 update <tableName> set 删除 delete from <tableName> 授权与收回对数据的操作权限 授予 grant <权…

用python编写一个放烟花的小程序

import pygame import random # 代码解释及使用说明&#xff1a; # 首先&#xff0c;导入 pygame 和 random 库。pygame 用于创建游戏窗口和图形绘制&#xff0c;random 用于生成随机数。 # 初始化 pygame&#xff0c;并设置屏幕尺寸为 800x600 像素&#xff0c;设置窗口标题为…

dns网址和ip是一一对应的吗?

DNS网址和IP地址是一一对应的吗&#xff1f;我们在上网时&#xff0c;为什么总是使用网址而不是一串数字&#xff1f;这些问题其实涉及到互联网的基本运作原理。DNS&#xff08;域名系统&#xff09;是我们日常上网过程中一个不可或缺的部分&#xff0c;它帮助我们将人类易于记…

Json与jsoncpp

目录 一、关于Json 1.数据类型 2.语法规则 二、写Json相关API 1.Json::Value类 2.append方法 3.toStyledString方法 三、读Json相关API 1.Json::Reader类 2.parse方法 3.类型判断方法 4.类型转换方法 5.getMemberNames方法 四、完整代码 一、关于Json Json是一种轻…

【管道——二分+区间合并】

题目 思路 区间合并 1、按照左端点排序2、遍历窗口&#xff0c;若窗口非法&#xff0c;继续遍历&#xff1b;否则执行33、若是第一个窗口&#xff0c;设定合并结果初值&#xff0c;判断结果左端点是否造成“起点过大”&#xff0c;是&#xff0c;FALSE退出&#xff1b;否则执行…

语雀导入md文件图片丢失

经常被困扰是&#xff0c;从语雀导入md文件&#xff0c;即使知道把md文件和本地图片文件夹打包成zip进行导入&#xff0c;还是出现图片丢失 解决方式1&#xff1a; 把图片和md文件放到同个目录下&#xff0c;重新打包成zip文件&#xff0c;导入后有图片了 解决方式2&#xf…

Python爬虫入门指南:从零开始抓取数据

Python爬虫入门指南&#xff1a;从零开始抓取数据 引言 在大数据时代&#xff0c;数据是新的石油。而爬虫作为获取数据的重要手段&#xff0c;受到了越来越多的关注。Python作为一门强大的编程语言&#xff0c;其简洁易用的特性使得它成为爬虫开发的首选语言。本篇文章将带你…

单片机--51- RAM

1.概览某个51单片机对空间区域的划分&#xff1a; 2.RAM被分配的区域是256bytes&#xff0c; 通常8051单片机ram是128bytes 8052的ram是256bytes&#xff08;其中高128位的地址和sfr区域地址重合&#xff0c;物理区域不同&#xff09; extern uint32_t alarm_cnt_1; uint32…

145页PPT智慧矿山整体规划建设方案

本资料收录在【智慧方案文库】知识星球&#xff08;截止目前共9500份&#xff0c;PPTWORD超过7000份&#xff0c;持续上传中......&#xff09; 68页PPT丨5G智能矿山解决方案 77页PPT智慧矿山整体规划建设方案

NET拓展配置

IP地址的分类 ABC---单播地址 私网IP地址 A&#xff1a;10.0.0.0 -10.255.255.255 /8 B:172.16.0.0-172.31.255.255 /16--16b类网段 C:192.168.0.0-192.168.255.255 -- Ip地址数量不够 所有华为设备和NAT相关的配置都是在边界设备的出接口上配置 静态NAT 因为网络划分…

云效流水线使用Node构建部署前端web项目

云效流水线实现自动化部署 背景新建流水线配置流水线运行流水线总结 背景 先来看看没有配置云效流水线之前的部署流程&#xff1a; 而且宝塔会经常要求重新登录&#xff0c;麻烦的很 网上博客分享了不少的配置流程&#xff0c;这一篇博客的亮点就是不仅给出了npm命令构建&…

api接口技术开发系列如何调用电商平台的按图搜索商品API?

不同电商平台的按图搜索商品 API 调用方法大致相似&#xff0c;以下是一般的调用步骤&#xff1a; 注册与获取权限 注册账号&#xff1a;在相应的电商开放平台注册成为开发者&#xff0c;如淘宝平台、1688 平台等。创建应用&#xff1a;登录后创建应用&#xff0c;填写应用的相…

如何安装适配pytorch版本的torchvision

一、对照版本 版本对照pytorch/vision: Datasets, Transforms and Models specific to Computer Vision 二、下载对应版本的torchvision 下载连接1download.pytorch.org/whl/torch_stable.html 下载连接2download.pytorch.org/whl/cu110/torch_stable.html 笔者认为1会比2更…

深入了解PINN:物理信息神经网络(Physics-Informed Neural Networks)

1. 什么是PINN&#xff08;物理信息神经网络&#xff09;&#xff1f; 物理信息神经网络&#xff08;PINN&#xff0c;Physics-Informed Neural Networks&#xff09;是一类通过结合神经网络和物理方程的深度学习方法。其主要特点是将物理系统的约束条件&#xff08;如偏微分方…

【数据结构-堆】力扣2530. 执行 K 次操作后的最大分数

给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你的 起始分数 为 0 。 在一步 操作 中&#xff1a; 选出一个满足 0 < i < nums.length 的下标 i &#xff0c; 将你的 分数 增加 nums[i] &#xff0c;并且 将 nums[i] 替换为 ceil(nums[i] / 3) 。 返回在 恰好…

我们公司只有3个人,一个前端,一个后端

在当今这个数字化时代&#xff0c;各行各业都离不开互联网技术的支撑&#xff0c;而在这股技术浪潮中&#xff0c;小而美的创业公司如同雨后春笋般涌现&#xff0c;它们凭借着灵活高效、创新不断的特点&#xff0c;在市场中占有一席之地。 今天&#xff0c;就让我带你走进这样一…