python测试开发---css基础

CSS(Cascading Style Sheets,层叠样式表)是用于描述 HTML 或 XML 文档的外观和格式的语言。它可以控制网页元素的布局、颜色、字体等样式,使页面更美观和易用。下面是 CSS 基础的介绍,包括语法和常用的属性。

1. CSS 语法

CSS 的语法由三个部分组成:

  • 选择器:指定要应用样式的 HTML 元素。
  • 属性:定义需要改变的样式。
  • :属性对应的具体样式值。
选择器 {属性:;
}

例如:

p {color: red; /* 将所有 <p> 标签的文字颜色设置为红色 */font-size: 16px; /* 设置字体大小为16像素 */
}

2. CSS 引入方式

有三种主要的方式将 CSS 应用到 HTML 文档中:

内联样式

直接在 HTML 元素的 style 属性中定义样式。只针对单个元素有效。

<p style="color: blue; font-size: 14px;">这是一个段落。</p>
内部样式表

在 HTML 文档的 <head> 标签中,使用 <style> 标签嵌入 CSS。

<head><style>p {color: blue;}</style>
</head>
外部样式表

将 CSS 写在单独的 .css 文件中,并在 HTML 中通过 <link> 标签引入。

<link rel="stylesheet" type="text/css" href="styles.css">

styles.css 文件内容:

p {color: blue;
}

3. 常用选择器

1. 标签选择器

选择某种 HTML 标签的所有元素。

p {color: green;
}
2. 类选择器

通过类名选择元素,类选择器以 . 开头。

/* HTML */
<p class="important">这是一个重要段落。</p>/* CSS */
.important {color: red;
}
3. ID 选择器

通过 ID 选择特定元素,ID 选择器以 # 开头。一个页面中同一个 ID 只能使用一次。

/* HTML */
<p id="intro">这是引言部分。</p>/* CSS */
#intro {color: blue;
}
4. 通用选择器

选择页面中的所有元素,用 * 表示。

* {margin: 0;padding: 0;
}
5. 组合选择器

选择多个元素,可以使用逗号 , 分隔。

h1, h2, h3 {color: purple;
}
6. 后代选择器

选择某个元素的所有子元素,使用空格分隔。

/* 选择所有在 <div> 内的 <p> 标签 */
div p {color: brown;
}

4. 常用的 CSS 属性

1. 文本相关属性
  • color: 设置文本颜色。

    p {color: red;
    }
    
  • font-size: 设置字体大小。

    p {font-size: 18px;
    }
    
  • text-align: 设置文本对齐方式。

    p {text-align: center;
    }
    
  • font-family: 设置字体。

    p {font-family: Arial, sans-serif;
    }
    
2. 布局相关属性
  • width / height: 设置元素的宽度和高度。

    div {width: 300px;height: 200px;
    }
    
  • margin: 设置外边距。

    div {margin: 20px;
    }
    
  • padding: 设置内边距。

    div {padding: 10px;
    }
    
  • border: 设置边框。

    div {border: 1px solid black;
    }
    
3. 背景相关属性
  • background-color: 设置背景颜色。

    div {background-color: lightblue;
    }
    
  • background-image: 设置背景图片。

    div {background-image: url('background.jpg');
    }
    

5. CSS 层叠性与优先级

当多个 CSS 规则应用于同一个元素时,CSS 的层叠性(Cascading)会决定哪个规则生效。优先级的高低由以下几个因素决定:

  • 内联样式 > ID 选择器 > 类选择器 > 标签选择器 > 通用选择器
  • 权重高的 样式规则优先应用。
  • 后定义的样式会覆盖之前的样式(如果权重相同)。
<p id="text" class="highlight">这是一个段落。</p>
p {color: green;
}.highlight {color: red;
}#text {color: blue;
}

在上述例子中,由于 ID 选择器的优先级最高,所以 <p> 的文本颜色会是蓝色。

6. CSS 盒模型

CSS 的盒模型描述了每个元素的布局方式,包括以下几个部分:

  1. 内容区 (content):元素的内容,如文本和图片。
  2. 内边距 (padding):内容周围的空间。
  3. 边框 (border):包围内容和内边距的边界。
  4. 外边距 (margin):元素与其他元素之间的空间。

通过 box-sizing 属性可以控制元素的盒模型计算方式:

div {box-sizing: border-box;
}

7. 响应式设计

响应式设计使网页在不同设备(如手机、平板、电脑)上有良好的表现。可以通过媒体查询来实现。

/* 针对最大宽度为600px的设备应用样式 */
@media (max-width: 600px) {body {background-color: lightgrey;}
}

8. 布局技巧

1. 浮动布局 (float)

float 属性用于将元素左右浮动,常用于实现简单的两列或多列布局。

.left {float: left;width: 50%;
}.right {float: right;width: 50%;
}

浮动元素脱离正常的文档流,后续的非浮动元素会围绕它。因此,常用 clear 属性清除浮动的影响:

.clearfix::after {content: "";display: block;clear: both;
}
2. 弹性盒布局 (Flexbox)

Flexbox 是 CSS 的强大布局工具,适合一维(水平或垂直)布局。

.container {display: flex;justify-content: space-between; /* 子元素在主轴上分散 */align-items: center; /* 子元素在交叉轴上居中 */
}
  • display: flex:将容器设为弹性布局容器。
  • justify-content:定义主轴上的对齐方式,如 centerspace-betweenflex-startflex-end 等。
  • align-items:定义交叉轴(默认垂直方向)上的对齐方式。

每个子元素还可以通过 flex-growflex-shrinkflex-basis 控制其在容器中的伸缩比例和尺寸。

.item {flex: 1; /* 子元素将平分父容器的剩余空间 */
}
3. 网格布局 (CSS Grid)

CSS Grid 是一个二维布局系统,可以让你同时控制行和列。

.container {display: grid;grid-template-columns: 1fr 2fr; /* 两列,第一列占1份,第二列占2份 */grid-template-rows: auto 100px; /* 两行,第一行自动,第二行固定高度 */gap: 10px; /* 设置行列之间的间距 */
}.item {grid-column: span 2; /* 让这个元素跨越2列 */
}
  • display: grid:将容器设为网格布局。
  • grid-template-columnsgrid-template-rows:定义列和行的尺寸。
  • gap:设置网格项之间的间距。
4. 定位 (position)

CSS 的 position 属性允许你根据不同的规则定位元素。

.relative {position: relative; /* 相对于正常位置进行偏移 */top: 10px;left: 10px;
}.absolute {position: absolute; /* 相对于最近的已定位祖先元素定位 */top: 50px;right: 20px;
}.fixed {position: fixed; /* 相对于浏览器窗口定位,通常用于固定导航栏 */top: 0;left: 0;
}.sticky {position: sticky; /* 在用户滚动到一定位置时元素会固定在屏幕上 */top: 0;
}

9. 响应式设计(进阶)

除了简单的媒体查询外,还可以使用更多响应式设计技术来确保页面在不同设备上表现良好。

1. 视口单位

vwvh 是相对于视口宽度和高度的单位:

.container {width: 100vw; /* 占据视口的100%宽度 */height: 100vh; /* 占据视口的100%高度 */
}
2. 媒体查询

根据屏幕宽度或设备类型,应用不同的样式。可以针对不同的断点,调整布局和字体等:

@media (max-width: 768px) {body {font-size: 14px;}
}@media (min-width: 769px) and (max-width: 1024px) {body {font-size: 16px;}
}
3. 百分比布局

使用百分比设置宽度和高度可以让布局根据父容器动态变化。

.container {width: 80%; /* 宽度是父容器的80% */
}

10. 伪类和伪元素

1. 伪类

伪类用于选择某种状态下的元素,例如鼠标悬停、访问链接等。

  • :hover:鼠标悬停时的样式。

    a:hover {color: red;
    }
    
  • :focus:元素获得焦点时的样式(如输入框)。

    input:focus {border-color: blue;
    }
    
  • :nth-child():选择特定的子元素。

    li:nth-child(odd) {background-color: lightgray; /* 选择奇数项 */
    }
    
2. 伪元素

伪元素用于选择元素的一部分,如第一个字母、行、或添加内容。

  • ::before::after:在元素内容前或后插入内容。

    h1::before {content: "★ ";color: gold;
    }
    
  • ::first-letter:选择第一个字母。

    p::first-letter {font-size: 2em;font-weight: bold;
    }
    

11. 过渡和动画

1. 过渡 (Transitions)

transition 用于平滑地过渡元素的样式变化。

button {background-color: blue;transition: background-color 0.5s ease; /* 0.5秒内平滑过渡背景颜色 */
}button:hover {background-color: red;
}
2. 动画 (Animations)

CSS 动画可以在一定时间内改变元素的多个属性。

@keyframes fadeIn {from {opacity: 0;}to {opacity: 1;}
}.element {animation: fadeIn 2s ease-in-out; /* 2秒内执行淡入效果 */
}

12. 自定义属性(CSS 变量)

CSS 变量(自定义属性)用于定义可重用的值,使样式更加灵活。

:root {--main-color: #3498db;--padding: 10px;
}button {background-color: var(--main-color);padding: var(--padding);
}

你可以在 :root 中定义全局变量,也可以在特定选择器中定义局部变量。

13. 浏览器兼容性

确保不同浏览器对 CSS 的支持可能会有差异。通常使用前缀来确保兼容性:

.element {-webkit-transform: rotate(45deg); /* 兼容 Webkit 浏览器 */-moz-transform: rotate(45deg);    /* 兼容 Firefox */transform: rotate(45deg);         /* 标准属性 */
}

你可以借助 Can I Use 网站检查 CSS 特性的浏览器支持情况。

14. 调试 CSS

  • 浏览器开发工具:所有主流浏览器都有开发者工具,可以实时查看和修改 CSS 样式。右键点击网页元素,选择“检查”或“审查元素”。
  • CSS 验证器:使用 W3C CSS 验证服务 来检查你的 CSS 代码是否符合标准。

总结

掌握 CSS 需要对基础选择器、属性、盒模型有清晰理解,同时学习布局(如 Flexbox 和 Grid)、响应式设计、伪类和动画等进阶特性。在开发中,善用工具和调试技巧,确保样式的兼容性和高效性。

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

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

相关文章

【C++前后缀分解 降维】2906. 构造乘积矩阵|2074

前后缀分解 C前后缀分解 LeetCode2906. 构造乘积矩阵 给你一个下标从 0 开始、大小为 n * m 的二维整数矩阵 grid &#xff0c;定义一个下标从 0 开始、大小为 n * m 的的二维矩阵 p。如果满足以下条件&#xff0c;则称 p 为 grid 的 乘积矩阵 &#xff1a; 对于每个元素 p[…

数据结构之‘栈’

文章目录 1.简介2. 栈的初始化和销毁3. 进栈和出栈3.1 进栈3.2 出栈3.3 栈的打印 1.简介 一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行&#xff08;数据插入和删除操作&#xff09;的一端称为栈顶&#xff0c;另一端称为栈底。压栈&#xf…

C语言之预处理详解(完结撒花)

目录 前言 一、预定义符号 二、#define 定义常量 三、#define定义宏 四、宏与函数的对比 五、#和## 运算符 六、命名约定 七、#undef 八、条件编译 九、头文件的包含 总结 前言 本文为我的C语言系列的最后一篇文章&#xff0c;主要讲述了#define定义和宏、#和##运算符、各种条件…

W25QXX系列Flash存储器模块驱动代码

目录 W25QXX简介 硬件电路 W25Q128框图 Flash操作注意事项 驱动代码 W25QXX.h W25QXX.c W25QXX简介 W25Qxx系列是一种低成本、小型化、使用简单的非易失性存储器&#xff0c;常应用于数据存储、字库存储、固件程序存储等场景 存储介质&#xff1a;Nor Flash&#xff0…

算法入门-贪心1

第八部分&#xff1a;贪心 409.最长回文串&#xff08;简单&#xff09; 给定一个包含大写字母和小写字母的字符串 s &#xff0c;返回通过这些字母构造成的最长的回文串 的长度。 在构造过程中&#xff0c;请注意 区分大小写 。比如 "Aa" 不能当做一个回文字符串…

如何通过 PhantomJS 模拟用户行为抓取动态网页内容

引言 随着网页技术的不断进步&#xff0c;JavaScript 动态加载内容已成为网站设计的新常态&#xff0c;这对传统的静态网页抓取方法提出了挑战。为了应对这一挑战&#xff0c;PhantomJS 作为一个无头浏览器&#xff0c;能够模拟用户行为并执行 JavaScript&#xff0c;成为了获…

Android RecycleView 深度解析与面试题梳理

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 引言 在 Android 开发中&#xff0c;列表和网格布局是非常常见的界面元素&#xff0c;它们用于展示大量数据集合。RecyclerView 是 Android 提…

小众语言ruby在苹果中的初步应用

前言 感觉Ruby在苹果系统中充当一种脚本语言来使用。 1、直接输入ruby没有反应 2、可显示结果的命令 ruby -e "puts Goodbye, cruel world!" 效果如下图&#xff1a; 说明苹果系统中ruby已经安装完毕&#xff0c;或者就是自带的。 3、编辑运行第一个ruby程序 输入…

nodejs+express+vue教辅课程辅助教学系统 43x2u前后端分离项目

目录 技术栈具体实现截图系统设计思路技术可行性nodejs类核心代码部分展示可行性论证研究方法解决的思路Express框架介绍源码获取/联系我 技术栈 该系统将采用B/S结构模式&#xff0c;开发软件有很多种可以用&#xff0c;本次开发用到的软件是vscode&#xff0c;用到的数据库是…

Linux常见查看文件命令

目录 一、cat 1.1. 查看文件内容 1.2. 创建文件 1.3. 追加内容到文件 1.4. 连接文件 1.5. 显示多个文件的内容 1.6. 使用管道 1.7. 查看文件的最后几行 1.8. 使用 -n 选项显示行号 1.9. 使用 -b 选项仅显示非空行的行号 二、tac 三、less 四、more 五、head 六、…

解决Gson将长数字( json字符串)转换为科学记数法格式

Gson&#xff08;又称Google Gson&#xff09;是Google公司发布的一个开放源代码的Java库&#xff0c;主要用途为序列化Java对象为JSON字符串&#xff0c;或反序列化JSON字符串成Java对象。 依赖 Gradle: dependencies {implementation com.google.code.gson:gson:2.11.0 }…

nginx基础篇(一)

文章目录 学习链接概图一、Nginx简介1.1 背景介绍名词解释 1.2 常见服务器对比IISTomcatApacheLighttpd其他的服务器 1.3 Nginx的优点(1)速度更快、并发更高(2)配置简单&#xff0c;扩展性强(3)高可靠性(4)热部署(5)成本低、BSD许可证 1.4 Nginx的功能特性及常用功能基本HTTP服…

内存压力测试工具的开发与实现

内存压力测试工具的开发与实现 一、工具设计概述二、工具实现1. 伪代码设计2. C代码实现三、工具使用与扩展四、结论在软件开发过程中,内存稳定性与可靠性是确保系统长期稳定运行的关键因素。为了验证系统在高负载下的内存表现,内存压力测试工具显得尤为重要。本文将基于C语言…

上市公司-客户ESG数据集(dta+xlsx+参考文献)(2009-2023年)

参考《经济问题》中李普玲&#xff08;2024&#xff09;的做法&#xff0c;将供应商与主要客户数据对应起来&#xff0c;并对上市公司及关联上市公司的ESG数据进行匹配&#xff0c;形成“供应商——客户ESG”的数据集&#xff0c;保留客户的销售占比 一、数据介绍 数据名称&am…

pdf文件怎么转换成ppt?介绍几种pdf转ppt的方法

pdf文件怎么转换成ppt&#xff1f;将pdf文件转换成ppt格式是一种常见且实用的需求&#xff0c;特别是在制作演示文稿和准备报告时。pdf格式因其文件内容的固定排版和高兼容性而广泛应用于文档的保存和分享。然而&#xff0c;在某些情况下&#xff0c;将pdf文件转换为ppt格式可以…

开源 AI 智能名片 S2B2C 商城小程序中的全渠道供应策略

摘要&#xff1a;本文深入探讨在开源 AI 智能名片 S2B2C 商城小程序的情境下&#xff0c;全渠道供应的运行机制。阐述各环节企业相互配合的重要性&#xff0c;重点分析零售企业在其中的关键作用&#xff0c;包括协调工作、信息传递、需求把握等方面&#xff0c;旨在实现高效的全…

鸿蒙开发之ArkUI 界面篇 十二 背景属性

backgroundColor背景色(纯颜色&#xff0c;没法实现立体感之类高级效果)、 backgroundImage背景图(一般是设计师设计好的图)、 backgroundImageSize背景图尺寸(用于调整背景图的尺寸)、 backgroundImagePosition背景图位置(用于调整背景图的位置)。 背景图的添加是属性backgrou…

测试工程师学历路径:从功能测试到测试开发

现在软件从业者越来越多&#xff0c;测试工程师的职位也几近饱和&#xff0c;想要获得竞争力还是要保持持续学习。基本学习路径可以从功能测试-自动化测试-测试开发工程师的路子来走。 功能测试工程师&#xff1a; 1、软件测试基本概念&#xff1a; 学习软件测试的定义、目的…

使用ShardingSphere实现MySql的分库分表

目录 一 什么是ShardingSphere分库分表 二 代码实现 1.导入相关依赖 2.配置相关参数 3.创建学生类以及mapper接口 4.实现 StandardShardingAlgorithm接口自定义分片算法 唐洋洋我知道你在看!!!嘿嘿 一 什么是ShardingSphere分库分表 我们平时在设计数据库的时候&#xf…

14 款全新「史诗级」可穿戴装备即将面世,附上获取教程!

14 个新的可穿戴装备原理图火热出炉&#xff0c;随时可供锻造 &#x1f525; 2024 年 7 月&#xff0c;AavegotchiDAO 举办了一次社区设计竞赛&#xff0c;才华横溢的艺术家们施展了他们的设计技能&#xff0c;创造出了 14 个新的可穿戴装备原理图。 现在&#xff0c;这些独一…