CSS 对齐、组合选择符、伪类、伪元素、导航栏

一、CSS 对齐:

1)、元素居中对齐:

水平居中对齐一个元素,可以使用margin:auto,设置到元素的宽度将防止它溢出到容器的边缘。元素通过指定宽度,并将两边的空外边距平均分配。示例:

<style>

.center {

    margin: auto;

    width: 60%;

    border: 3px solid #73AD21;

    padding: 10px;

}

</style>

2)、文本居中对齐:

文本在元素内居中对齐,可以使用text-align:center。示例:

<style>

.center {

    text-align: center;

    border: 3px solid green;

}

</style>

3)、图片居中对齐:

图片居中对齐,可以使用margin:auto,并将它放到块元素中。示例:

<style>

img {

    display: block;

    margin: 0 auto;

}

</style>

4)、使用定位方式左右对齐:

使用position:absolute属性对齐元素。当使用position来对齐元素时,通常<body>元素会设置margin和padding。这样可以避免在不同的浏览器中出现可见的差异。示例:

<style>

body {

    margin: 0;

    padding: 0;

}

.container {

    position: relative;

    width: 100%;

}

.right {

    position: absolute;

    right: 0px;

    width: 300px;

    background-color: #b0e0e6;

}

</style>

5)、使用float方式左右对齐:

<style>

body {

    margin: 0;

    padding: 0;

}

.right {

    float: right;

    width: 300px;

    background-color: #b0e0e6;

}

</style>

6)、使用padding垂直居中对齐:

<style>

.center {

    padding: 70px 0;

    border: 3px solid green;

    text-align: center;

}

</style>

7)、使用line-height垂直居中:

<style>

.center {

    line-height: 200px;

    height: 200px;

    border: 3px solid green;

    text-align: center;

}

.center p {

    line-height: 1.5;

    display: inline-block;

    vertical-align: middle;

}

</style>

8)、使用position和transform垂直居中:

<style>

.center {

    height: 200px;

    position: relative;

    border: 3px solid green;

}

.center p {

    margin: 0;

    position: absolute;

    top: 50%;

    left: 50%;

    -ms-transform: translate(-50%, -50%);

    transform: translate(-50%, -50%);

}

</style>

二、CSS 组合选择符:

CSS组合选择符说明了两个选择器之间的关系。CSS组合选择符包含各种简单选择符的组合方式。在CSS3中包含了四种组合方式:后代选择器(以空格“ ”分隔);子元素选择器(以大于号“>”分隔);相邻兄弟选择器(以加号“+”分隔);普通兄弟选择器(以波浪号“~”分隔)。

1)、后代选择器:

后代选择器用于选取某元素的后代元素。示例:

<style>

div p

{

background-color:yellow;

}

</style>

2)、子元素选择器:

子元素选择器只能选择作为某元素直接/一级子元素的元素。示例:

<style>

div>p

{

background-color:yellow;

}

</style>

3)、相邻兄弟选择器:

相邻兄弟选择器可以选择紧接在另一个元素后的元素,且二者有相同父元素。示例:

<style>

div+p

{

background-color:yellow;

}

</style>

4)、普通兄弟选择器:

后续兄弟选择器选取所有指定元素之后的相邻兄弟元素。示例:

<style>

div~p

{

background-color:yellow;

}

</style>

三、CSS 伪类:

CSS伪类是用来添加一些选择器的特殊效果。伪类的语法:

selector:pseudo-class {property:value;}CSS类可以使用伪类:selector.class:pseudo-class {property:value;}

1)、Anchor伪类:

<style>

a:link {color:#0000FF;}       /* 未访问链接*/

a:visited {color:#000FF0;}   /* 已访问链接 */

a:hover {color:#FF0000;}   /* 鼠标移动到链接上 */

a:active {color:#000FFF;}   /* 鼠标点击时 */

</style>

2)、伪类可以与CSS类配合使用:

  1. red:visited {color:#FF0000;}
  2. <a class="red" href="css.html">CSS 语法</a>

3)、CSS:first-child伪类:

使用first-child伪类选择父元素的第一个子元素:

<style>

p:first-child

{

color:blue;

}

</style>

使用first-child伪类选择匹配所有<p>元素的第一个<i>元素:

<style>

p > i:first-child

{

color:blue;

}

</style>

使用first-child伪类选择匹配所有<p>元素的所有<i>元素:

<style>

p:first-child i

{

color:blue;

}

</style>

4)、CSS-:lang伪类:

:lang伪类可以为不同的语言定义特殊的规则。

<style>

q:lang(no)

{

quotes: "~" "~";

}

</style>

所有CSS伪类/元素:

选择器

示例

示例说明

:checked

input:checked

选择所有选中的表单元素

:disabled

input:disabled

选择所有禁用的表单元素

:empty

p:empty

选择所有没有子元素的p元素

:enabled

input:enabled

选择所有启用的表单元素

:first-of-type

p:first-of-type

选择的每个 p 元素是其父元素的第一个 p 元素

:in-range

input:in-range

选择元素指定范围内的值

:invalid

input:invalid

选择所有无效的元素

:last-child

p:last-child

选择所有p元素的最后一个子元素

:last-of-type

p:last-of-type

选择每个p元素是其母元素的最后一个p元素

:not(selector)

:not(p)

选择所有p以外的元素

:nth-child(n)

p:nth-child(2)

选择所有 p 元素的父元素的第二个子元素

:nth-last-child(n)

p:nth-last-child(2)

选择所有p元素倒数的第二个子元素

:nth-last-of-type(n)

p:nth-last-of-type(2)

选择所有p元素倒数的第二个为p的子元素

:nth-of-type(n)

p:nth-of-type(2)

选择所有p元素第二个为p的子元素

:only-of-type

p:only-of-type

选择所有仅有一个子元素为p的元素

:only-child

p:only-child

选择所有仅有一个子元素的p元素

:optional

input:optional

选择没有"required"的元素属性

:out-of-range

input:out-of-range

选择指定范围以外的值的元素属性

:read-only

input:read-only

选择只读属性的元素属性

:read-write

input:read-write

选择没有只读属性的元素属性

:required

input:required

选择有"required"属性指定的元素属性

:root

root

选择文档的根元素

:target

#news:target

选择当前活动#news元素(点击URL包含锚的名字)

:valid

input:valid

选择所有有效值的属性

:link

a:link

选择所有未访问链接

:visited

a:visited

选择所有访问过的链接

:active

a:active

选择正在活动链接

:hover

a:hover

把鼠标放在链接上的状态

:focus

input:focus

选择元素输入后具有焦点

:first-letter

p:first-letter

选择每个<p> 元素的第一个字母

:first-line

p:first-line

选择每个<p> 元素的第一行

:first-child

p:first-child

选择器匹配属于任意元素的第一个子元素的 <p> 元素

:before

p:before

在每个<p>元素之前插入内容

:after

p:after

在每个<p>元素之后插入内容

:lang(language)

p:lang(it)

为<p>元素的lang属性选择一个开始值

四、CSS 伪元素:

CSS伪元素是用来添加一些选择器的特殊效果。伪元素的语法:

selector:pseudo-element {property:value;}CSS类也可以使用伪元素:selector.class:pseudo-element {property:value;}

1)、firs-line伪元素用于向文本的首行设置特殊样式。firs-line伪元素只能用于块级元素。可应用于firs-line伪元素的属性:font properties、color properties background propertiesword-spacingletter-spacingtext-decorationvertical-aligntext-transformline-heightclear。示例:

  • <style>
  • p:first-line
  • {
  • color:#ff0000;
  • font-variant:small-caps;
  • }
  • </style>

2)、first-letter伪元素:

  • first-letter伪元素用于向文本的首字母设置特殊样式。first-letter伪元素只能用于块级元素。可应用于first-letter伪元素的属性:font properties、color propertiesbackground propertiesmargin propertiespadding propertiesborder propertiestext-decorationvertical-align (only if "float" is "none")text-transformline-heightfloatclear。示例:
  • <style>
  • p:first-letter
  • {
  • color:#ff0000;
  • font-size:xx-large;
  • }
  • </style>

3)、伪元素和CSS类:

  • 伪元素可以结合CSS类使用。示例:

p.article:first-letter {color:#ff0000;}

<p class="article">文章段落</p>

多个伪元素可以结合使用。示例:

<style>

p:first-letter

{

color:#ff0000;

font-size:xx-large;

}

p:first-line

{

color:#0000ff;

font-variant:small-caps;

}

</style>

4)、CSS-:before伪元素:

before伪元素可以在元素的内容前面插入新的内容。示例:

<style>

h1:before {content:url(smiley.gif);}

</style>

5)、CSS-:after伪元素:

after伪元素可以在元素的内容之后插入新的内容。示例:

<style>

h1:after {content:url(smiley.gif);}

</style>

所有CSS伪类/元素:

五、CSS 导航栏:

导航栏基本上是一个链接列表:

<ul>

<li><a href="#home">主页</a></li>

<li><a href="#news">新闻</a></li>

<li><a href="#contact">联系</a></li>

<li><a href="#about">关于</a></li>

</ul>

删除导航栏中的边距和填充:

style>

ul

{

list-style-type:none;

margin:0;

padding:0;

}

</style>

</head>

<body>

<ul>

<li><a href="#home">主页</a></li>

<li><a href="#news">新闻</a></li>

<li><a href="#contact">联系</a></li>

<li><a href="#about">关于</a></li>

</ul>

1)、垂直导航栏:

<style>

ul {

  list-style-type: none;

  margin: 0;

  padding: 0;

}

li a {

  display: block;

  width: 60px;

  background-color: #dddddd;

}

</style>

<ul>

<li><a href="#home">主页</a></li>

<li><a href="#news">新闻</a></li>

<li><a href="#contact">联系</a></li>

<li><a href="#about">关于</a></li>

</ul>

创建一个简单的垂直导航栏,在鼠标移动到选项时,改变颜色:

<style>

ul {

    list-style-type: none;

    margin: 0;

    padding: 0;

    width: 200px;

    background-color: #f1f1f1;

}

li a {

    display: block;

    color: #000;

    padding: 8px 16px;

    text-decoration: none;

}

/* 鼠标移动到选项上修改背景颜色 */

li a:hover {

    background-color: #555;

    color: white;

}

</style>

<ul>

<li><a href="#home">主页</a></li>

<li><a href="#news">新闻</a></li>

<li><a href="#contact">联系</a></li>

<li><a href="#about">关于</a></li>

</ul>

导航栏创建链接并添加边框:

<style>

ul {

    list-style-type: none;

    margin: 0;

    padding: 0;

    width: 200px;

    background-color: #f1f1f1;

    border: 1px solid #555;

}

li a {

    display: block;

    color: #000;

    padding: 8px 16px;

    text-decoration: none;

}

li {

    text-align: center;

    border-bottom: 1px solid #555;

}

li:last-child {

    border-bottom: none;

}

li a.active {

    background-color: #4CAF50;

    color: white;

}

li a:hover:not(.active) {

    background-color: #555;

    color: white;

}

</style>

<ul>

  <li><a class="active" href="#home">主页</a></li>

  <li><a href="#news">新闻</a></li>

  <li><a href="#contact">联系</a></li>

  <li><a href="#about">关于</a></li>

</ul>

创建一个左边为全屏高度固定导航栏,右边是可滚动的内容:

<style>

body {

    margin: 0;

}

ul {

    list-style-type: none;

    margin: 0;

    padding: 0;

    width: 25%;

    background-color: #f1f1f1;

    position: fixed;

    height: 100%;

    overflow: auto;

}

li a {

    display: block;

    color: #000;

    padding: 8px 16px;

    text-decoration: none;

}

li a.active {

    background-color: #4CAF50;

    color: white;

}

li a:hover:not(.active) {

    background-color: #555;

    color: white;

}

</style>

<body>

<ul>

  <li><a class="active" href="#home">主页</a></li>

  <li><a href="#news">新闻</a></li>

  <li><a href="#contact">联系</a></li>

  <li><a href="#about">关于</a></li>

</ul>

<div style="margin-left:25%;padding:1px 16px;height:1000px;">

<p>Some text..</p>

  <p>Some text..</p>

  <p>Some text..</p>

  <p>Some text..</p>

  <p>Some text..</p>

  <p>Some text..</p>

  <p>Some text..</p>

</div>

</body>

2)、水平导航栏:

有两种方法创建水平导航栏,使用内联或浮动的列表项。

内联列表项:

<style>

ul

{

list-style-type:none;

margin:0;

padding:0;

}

li

{

display:inline;

}

</style>

<body>

<ul>

<li><a href="#home">主页</a></li>

<li><a href="#news">新闻</a></li>

<li><a href="#contact">联系</a></li>

<li><a href="#about">关于</a></li>

</ul>

</body>

浮动列表项:

<style>

ul

{

list-style-type:none;

margin:0;

padding:0;

overflow:hidden;

}

li

{

float:left;

}

a

{

display:block;

width:60px;

background-color:#dddddd;

}

</style>

水平导航条:

<style>

ul {

    list-style-type: none;

    margin: 0;

    padding: 0;

    overflow: hidden;

    background-color: #333;

}

li {

    float: left;

}

li a {

    display: block;

    color: white;

    text-align: center;

    padding: 14px 16px;

    text-decoration: none;

}

li a:hover {

    background-color: #111;

}

</style>

<body>

<ul>

  <li><a class="active" href="#home">主页</a></li>

  <li><a href="#news">新闻</a></li>

  <li><a href="#contact">联系</a></li>

  <li><a href="#about">关于</a></li>

</ul>

</body>

链接右对齐:

.active {

    background-color: #4CAF50;

}

添加分割线:

li {

    float: left;

    border-right:1px solid #bbb;

}

li:last-child {

    border-right: none;

}

灰色水平导航栏:

<style>

ul {

    list-style-type: none;

    margin: 0;

    padding: 0;

    overflow: hidden;

    border: 1px solid #e7e7e7;

    background-color: #f3f3f3;

}

li {

    float: left;

}

li a {

    display: block;

    color: #666;

    text-align: center;

    padding: 14px 16px;

    text-decoration: none;

}

li a:hover:not(.active) {

    background-color: #ddd;

}

li a.active {

    color: white;

    background-color: #4CAF50;

}

</style>

<body>

<ul>

  <li><a class="active" href="#home">主页</a></li>

  <li><a href="#news">新闻</a></li>

  <li><a href="#contact">联系</a></li>

  <li><a href="#about">关于</a></li>

</ul>

</body>

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

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

相关文章

【前端】Jquery UI +PHP 实现表格拖动排序

目的&#xff1a;使用jquery ui库实现对表格拖拽排序&#xff0c;并且把排序保存到数据库中 效果如下 一、准备工作&#xff1a; 1、下载jquery ui库&#xff0c;可以直接引用线上路径 <link rel"stylesheet" href"https://code.jquery.com/ui/1.12.1/them…

IS-LM模型:从失衡到均衡的模拟

IS-LM模型&#xff1a;从失衡到均衡的模拟 文章目录 IS-LM模型&#xff1a;从失衡到均衡的模拟[toc] 1 I S − L M 1 IS-LM 1IS−LM模型2 数值模拟2.1 长期均衡解2.2 政府部门引入2.3 价格水平影响2.4 随机扰动因素 1 I S − L M 1 IS-LM 1IS−LM模型 I S − L M IS-LM IS−LM是…

如何在CPU上进行高效大语言模型推理

大语言模型&#xff08;LLMs&#xff09;已经在广泛的任务中展示出了令人瞩目的表现和巨大的发展潜力。然而&#xff0c;由于这些模型的参数量异常庞大&#xff0c;使得它们的部署变得相当具有挑战性&#xff0c;这不仅需要有足够大的内存空间&#xff0c;还需要有高速的内存传…

无需标注海量数据,目标检测新范式OVD

当前大火的多模态GPT-4在视觉能力上只具备目标识别的能力&#xff0c;还无法完成更高难度的目标检测任务。而识别出图像或视频中物体的类别、位置和大小信息&#xff0c;是现实生产中众多人工智能应用的关键&#xff0c;例如自动驾驶中的行人车辆识别、安防监控应用中的人脸锁定…

智慧工地源码 手册文档 app 数据大屏、硬件对接、萤石云

智慧工地解决方案依托计算机技术、物联网、云计算、大数据、人工智能、VR、AR等技术相结合&#xff0c;为工程项目管理提供先进技术手段&#xff0c;构建工地现场智能监控和控制体系&#xff0c;弥补传统方法在监管中的缺陷&#xff0c;最终实现项目对人、机、料、法、环的全方…

ZZ308 物联网应用与服务赛题第E套

2023年全国职业院校技能大赛 中职组 物联网应用与服务 任 务 书 &#xff08;E卷&#xff09; 赛位号&#xff1a;______________ 竞赛须知 一、注意事项 1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等&#xff1b; 2.竞赛任务中所使用的…

文件包含漏洞培训

CTF介绍 MISC(Miscellaneous)类型,即安全杂项,题目或涉及流量分析、电子取证、人肉搜索、数据分析等等。CRYPTO(Cryptography)类型,即密码学,题目考察各种加解密技术,包括古典加密技术、现代加密技术甚至出题者自创加密技术。PWN类型,PWN在黑客俚语中代表着攻破、取得权限…

21 移动网络的前世今生

1、移动网络的发展历程 发展过程就是&#xff1a;2G,3G,4G,5G的过程&#xff0c;用2G看txt&#xff0c;用3G看jpg&#xff0c;用4G看avi。 2、2G网络 手机本来是用来打电话的&#xff0c;不是用来上网的&#xff0c;所以原来在2G时代&#xff0c;上网使用的不是IP网络&#…

关于视频封装格式和视频编码格式的简介

文章目录 简介视频封装格式&#xff08;Video Container Format&#xff09;视频编码格式&#xff08;Video Compression Format&#xff09;两者关系总结webm 格式简介webm视频编码格式webm音频编码格式webm总结 简介 视频封装格式&#xff08;Video Container Format&#x…

sql学习

因为之前sql学的太烂了&#xff0c;想整理一下 一.什么是 SQL&#xff1f; SQL 是用于访问和处理数据库的标准的计算机语言。 SQL 指结构化查询语言SQL 使我们有能力访问数据库SQL 是一种 标准计算机语言 二.SQL 能做什么&#xff1f; SQL 面向数据库执行查询SQL 可从数据库…

2020 ICPC 澳门(G,J,I)详解

链接&#xff1a;The 2020 ICPC Asia Macau Regional Contest G Game on Sequence 题意 给定长度为 n n n 数组 a i a_i ai​&#xff0c;A与G博弈&#xff0c;G先手&#xff0c;给定初始位置 k k k&#xff0c;若当前在 i i i 点转移到 j j j&#xff0c;满足 i <…

【编程语言发展史】SQL的发展历史

目录 目录 SQL概述 SQL发展历史 SQL特点 SQL基本语句 SQL是结构化查询语言(Structure Query Language)的缩写&#xff0c;它是使用关系模型的数据库应用语言&#xff0c;由IBM在70年代开发出来&#xff0c;作为IBM关系数据库原型System R的原型关系语言&#xff0c;实现了…

MySQL -- 用户管理

MySQL – 用户管理 文章目录 MySQL -- 用户管理一、用户1.用户信息2.创建用户3.删除用户4.远端登录MySQL5.修改用户密码6.数据库的权限 一、用户 1.用户信息 MySQL中的用户&#xff0c;都存储在系统数据库mysql的user表中&#xff1a; host&#xff1a; 表示这个用户可以从…

关于Alibaba Cloud Toolkit 下载配置以及后端自动部署

idea中File-Settings-Plugins 搜索Alibaba Cloud Toolkit点击下载&#xff0c;下载完成重启 1、点击 Tools-Alibaba Cloud-Deploy to Host 部署到主机 2、配置服务器ip、jar包启动命令、服务器jar存放位置 3、设置服务器ip用户名密码&#xff0c;点击测试连接情况 4、配置脚本…

微信支付测试用例设计怎么设计?

功能测试用例&#xff1a; 测试支付流程是否正常&#xff0c;包括选择支付方式&#xff0c;输入金额&#xff0c;确认支付&#xff0c;输入密码&#xff0c;支付成功等步骤 测试不同的支付方式&#xff0c;如微信零钱&#xff0c;银行卡&#xff0c;信用卡等 测试不同的支付场…

《第三期(先导课)》之《Python 开发环境搭建》

文章目录 《第 1 节 初始Python》《第 6 节 pip包管理工具》 《第 1 节 初始Python》 。。。 《第 6 节 pip包管理工具》 pip是Python的包管理工具,用于安装、升级和管理Python包。 pip是Python标准库之外的一个第三方工具,可以从Python Package Index(PyPI)下载和安装各种P…

自动化实战 - 测试个人博客系统

前言 本篇使用Selenium3Junit5对个人博客进行自动化测试&#xff0c;如有错误&#xff0c;请在评论区指正&#xff0c;让我们一起交流&#xff0c;共同进步&#xff01; 文章目录 前言一.web自动化测试用例二.测试准备1.注册界面自动化测试测试过程中遇到的Bug: 2.登录界面自动…

【遍历二叉树的非递归算法,二叉树的层次遍历】

文章目录 遍历二叉树的非递归算法二叉树的层次遍历 遍历二叉树的非递归算法 先序遍历序列建立二叉树的二叉链表 中序遍历非递归算法 二叉树中序遍历的非递归算法的关键&#xff1a;在中序遍历过某个结点的整个左子树后&#xff0c;如何找到该结点的根以及右子树。 基本思想&a…

Mabitys总结

一、ORM ORM(Object/Relation Mapping)&#xff0c;中文名称&#xff1a;对象/关系 映射。是一种解决数据库发展和面向对象编程语言发展不匹配问题而出现的技术。 使用JDBC技术时&#xff0c;手动实现ORM映射&#xff1a; 使用ORM时&#xff0c;自动关系映射&#xff1a; &am…

『MySQL快速上手』-⑥-表的约束

文章目录 1.空属性2.默认值3.列描述4.zerofill5.主键6.自增长7.唯一键8.外键9.综合案例真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。 1.空属性 数据库默认字段基本都是字段为空,但是…