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.xdnf.cn/news/1538751.html

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

相关文章

阿里巴巴API助力电商:商品详情获取与数据驱动的完美结合

阿里巴巴API在电商领域的应用&#xff0c;特别是在商品详情获取与数据驱动的决策过程中&#xff0c;发挥着至关重要的作用。以下是对这一主题的详细阐述&#xff1a; 一、阿里巴巴API在商品详情获取中的应用 丰富的数据支持&#xff1a; 阿里巴巴提供的商品详情API&#xff0…

html详细知识

1-标题标签、水平线、字体标签 <!--1.标题标签1&#xff09;格式&#xff1a;<hn></hn> n的范围是1-6&#xff0c;依次递减2&#xff09;标题标签特点&#xff1a;a:单独占一行b:自动加粗2.水平线1&#xff09;格式&#xff1a;<hr/>2)属性&#xff1a;…

深度学习对抗海洋赤潮危机!浙大GIS实验室提出ChloroFormer模型,可提前预警海洋藻类爆发

2014 年 8 月&#xff0c;美国俄亥俄州托莱多市超 50 万名居民突然收到市政府的一则紧急通知——不得擅自饮用自来水&#xff01; 水是人类生存的基本供给&#xff0c;此通告关系重大&#xff0c;发出后也引起了不小的恐慌。究其原因&#xff0c;其实是美国伊利湖爆发了大规模…

如何使用ssm实现在线视频网站开发

TOC ssm631在线视频网站开发jsp 绪论 1.1 选题背景 当人们发现随着生产规模的不断扩大&#xff0c;人为计算方面才是一个巨大的短板&#xff0c;所以发明了各种计算设备&#xff0c;从结绳记事&#xff0c;到算筹&#xff0c;以及算盘&#xff0c;到如今的计算机&#xff0…

关于嵌入式硬件需要了解的基础知识

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于嵌入式硬件基础知识的相关内容&#xff…

html,css基础知识点笔记(二)

9.18&#xff08;二&#xff09; 本文主要教列表的样式设计 1&#xff09;文本溢出 效果图 文字限制一行显示几个字&#xff0c;多余打点 line-height: 1.8em; white-space: nowrap; width: 40em; overflow: hidden; text-overflow: ellipsis;em表示一个文字的大小单位&…

828华为云征文|云服务器Flexus X实例|Ubunt部署Vue项目

概要 本章将深入阐述Vue项目在Ubuntu环境下&#xff0c;实现在华为云Flexus X云服务器上的部署过程&#xff0c;此次演示以Vue.js项目为核心华为云在已经到来的828 B2B企业节上&#xff0c;为Vue等前端项目的部署与运维提供强有力的支持。 Ubuntu部署Vue项目的影响&#xff1…

VS Code远程连接虚拟机

VS Code远程连接虚拟机 1.下载vscode2.打开VS Code下载Remote-SSH插件1.修改相关信息 3.虚拟机检查或安装ssh4.检查虚拟机服务是否安装成功5.开启ssh&#xff0c;并检查是否开启成功 1.下载vscode 2.打开VS Code下载Remote-SSH插件 1.修改相关信息 2. 3.虚拟机检查或安装ssh…

封装svg图片

前言 项目中有大量svg图片&#xff0c;为了方便引入&#xff0c;所以对svg进行了处理 一、svg是什么&#xff1f; svg是可缩放矢量图形&#xff0c;是一种图片格式 二、使用步骤 1.创建icons文件夹 将icons文件夹放进src中&#xff0c;并创建一个svg文件夹和index.js&…

PMP--一模--解题--161-170

文章目录 13.干系人管理161、 [单选] 项目经理正在领导一个公司内部项目&#xff0c;该项目正处于早期阶段。该项目与一年前结束的另一个项目很相似&#xff0c;项目经理该做什么来分析涉及的干系人&#xff1f; 10.沟通管理162、 [单选] 在项目执行过程中&#xff0c;一位关键…

Docker安装 ▎Docker详细讲解 ▎数据卷挂载 ▎Nginx安装理解

前言 Docker是一种容器化技术&#xff0c;简化软件的部署和管理。文章详细解释了Docker的架构、安装步骤和常用命令&#xff0c;帮助用户快速启动和管理容器。还介绍了Docker镜像命令和数据卷挂载的实例&#xff0c;增强对持久化存储的理解&#xff0c;并涵盖了Nginx的安装方法…

『功能项目』QFrameWork框架重构OnGUI【63】

我们打开上一篇62QFrameWork背包框架的项目&#xff0c; 上文将功能实现在一个脚本中 本章要做的事情让脚本实现背包框架思想 首先按照图示创建脚本&#xff1a; 创建脚本&#xff1a;Item.cs namespace QFramework {public class Item{//道具public string Key;public string …

【网络】传输层协议TCP

TCP协议 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议&#xff0c;由IETF的RFC 793定义。TCP在IP&#xff08;Internet Protocol&#xff0c;互联网协议&#xff09;网络层上提供…

最长连续子序列 - 华为OD统一考试(E卷)

OD统一考试&#xff08;E卷&#xff09; 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 2024华为OD机试&#xff08;E卷D卷C卷&#xff09;最新题库【超值优惠】Java/Python/C合集 题目描述 有N个正整数组成的一个序列。给定整数sum&#xff0c;求长度最长的连续…

海报制作哪个软件好?探索5个免费海报生成器

Hey&#xff0c;最近发现了几个超酷的海报生成器&#xff0c;它们简直是设计新手的救星&#xff01;无论是想要快速制作一张吸引眼球的促销海报&#xff0c;还是为即将到来的活动设计一张有创意的邀请函&#xff0c;这些工具都能让整个过程变得既简单又有趣。 设想一下&#x…

React框架搭建,看这一篇就够了,看完你会感谢我

传统搭建框架的方式 在2024年以前&#xff0c;我们构建框架基本上采用官方脚手架&#xff0c;但是官方脚手架其实大概率都不符合我们的项目要求&#xff0c;搭建完了以后往往需要再继续集成一些第三方的包。这时候又会碰到一些版本冲突&#xff0c;配置教程等&#xff0c;往往…

PMP--二模--解题--1-10

文章目录 4.整合管理--商业文件--商业论证&#xff08;是否值得所需投资、高管们决策的依据&#xff09;反映了&#xff1a;1、 [单选] 收到新项目的客户请求之后&#xff0c;项目经理首先应该做什么&#xff1f; 14.敏捷--角色--产品负责人PO–职责–1.创建待办列表并排序;2.确…

大数据-137 - ClickHouse 集群 表引擎详解2 - MergeTree 存储结构 一级索引 跳数索引

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

k8s的一些命令

kubectl get nodes &#xff1a;查看节点的状态 查看Pod的状态&#xff1a; kubectl get pod --all -namespacesPending,ContainerCreating,ImagePullBackOff都表明Pod没有就绪&#xff0c;Running才是就绪状态 查看Pod的具体情况&#xff1a; kubectl describe pod podnamek…

关于 Qt运行加载内存较大崩溃添加扩大运行内存 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/142341544 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…