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

news2024/10/6 16:22:06

一、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.coloradmin.cn/o/1187076.html

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

相关文章

如何快速教你看自己电脑cpu是几核几线程

目录 一、我们日常中说的电脑多少核多少线程&#xff0c;很多人具体不知道什么意思&#xff0c;下面举例4核和4线程什么意思。二、那么4线程又是怎么回事呢&#xff1f;三、那么知道了上面的介绍后怎么看一台电脑是几核&#xff0c;几线程呢&#xff1f; 一、我们日常中说的电脑…

C语言每日一题(26)移除链表元素

力扣网 203. 移除链表元素 题目描述 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 思路分析 针对如图的普通情况&#xff0c;不能简单的遍历到对应位置然后进行释放&#xff0c;一方…

Linux内核有什么之内存管理子系统有什么第三回 —— 小内存分配(1)

接前一篇文章&#xff1a;Linux内核有什么之内存管理子系统有什么第二回 —— 单刀直入 本文内容参考&#xff1a; 内存分配不再神秘&#xff1a;深入剖析malloc函数实现原理与机制 系统调用与内存管理&#xff08;sbrk、brk、mmap、munmap&#xff09; 特此致谢&#xff01;…

智安网络|探索人机交互的未来:自然语言处理的前沿技术

自然语言处理是人工智能领域中研究人类语言和计算机之间交互的一门学科。它涉及了语言的理解、生成、翻译、分类和摘要等多个方面。随着人们对自然语言处理的重视和需求不断增长&#xff0c;成为了热门的研究方向。 首先&#xff0c;我们需要了解自然语言处理的基本概念。自然…

Qt实现动态桌面小精灵(含源码)

目录 一、设计思路 二、部分源码演示 三、源码地址 🌈write in front🌈 🧸大家好,我是三雷科技.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由三雷科技原创 CSDN首发🐒 如需转载还请通知⚠️ 📝个人主页:三雷科技🧸—CSDN博客 🎁欢…

c语言贪吃蛇项目的实现

ncurse的引入 ncurse的概念 ncurse(new curses)是一套编程库&#xff0c;它提供了一系列的函数&#xff0c;以便使用者调用它们去生成基于文本的用户界面。 ncurses是一个能提供功能键定义(快捷键),屏幕绘制以及基于文本终端的图形互动功能的动态库。ncurses用得最多的地方是…

C++二分算法: 找出第 K 小的数对距离

题目 数对 (a,b) 由整数 a 和 b 组成&#xff0c;其数对距离定义为 a 和 b 的绝对差值。 给你一个整数数组 nums 和一个整数 k &#xff0c;数对由 nums[i] 和 nums[j] 组成且满足 0 < i < j < nums.length 。返回 所有数对距离中 第 k 小的数对距离。 示例 1&#x…

LeetCode-94. 二叉树的中序遍历(C++)

目录捏 一、题目描述二、示例与提示三、思路四、代码 一、题目描述 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 二、示例与提示 示例 1&#xff1a; 输入&#xff1a; root [1,null,2,3] 输出&#xff1a; [1,3,2] 示例 2&#xff1a; 输入&#xf…

引入依赖时,对应类能点击进入,运行时报错

引入依赖时&#xff0c;对应类能点击进入&#xff0c;运行时报错 一、问题二、解决问题的过程三、解决方式1、排除其中一个依赖的公共包2、升级旧依赖 一、问题 我的问题是这样的&#xff1a;以前引入了阿里云文字识别的依赖&#xff0c;最近要调用视频活体检测的接口&#xf…

flutter笔记:骨架化加载器

flutter笔记 骨架化加载器 - 文章信息 - Author: Jack Lee (jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/article/details/134224135 【介绍】&#xff1a;本文介…

windows服务器限制特定ip访问指定端口(服务器ip白名单)

有些时候我们需要限制特定的ip白名单来访问服务器的指定端口&#xff0c;来防止dos攻击或其他危险访问&#xff0c;我们可以通过防火墙来实现这一需求&#xff0c;下面一起看一下&#xff1a; 1.首先开启防火墙 ps:开启防火墙可能有些端口会无法访问&#xff0c;比如80、443等…

【JavaEE】HTTPS协议(对称加密、非对称加密、中间人攻击、证书)

一、什么是HTTPS&#xff1f; 1.1 什么是HTTPS&#xff1f; HTTPS 也是一个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层 1.2 为什么引入HTTPS&#xff1f; HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在传输过程中出现一些被篡改的情况 比如臭名昭著的…

Java --- Mybatis的动态sql标签

一、if标签 <select id"queryEmpByCondition" resultType"User">select * from t_user where 11<if test"username ! null and username ! ">and username #{username}</if></select> if&#xff1a;根据标签中的test…

用Powershell实现:删除所有不是与.json文件重名的.jpg文件

# 指定要搜索的目录路径 $directoryPath "C:\path\to\your\directory"# 获取该目录下的所有.jpg和.json文件 $jpgFiles Get-ChildItem -Path $directoryPath -Filter *.jpg $jsonFiles Get-ChildItem -Path $directoryPath -Filter *.json | Select-Object -Expan…

2022最新版-李宏毅机器学习深度学习课程-P34 自注意力机制类别总结

在课程的transformer视频中&#xff0c;李老师详细介绍了部分self-attention内容&#xff0c;但是self-attention其实还有各种各样的变化形式&#xff1a; 一、Self-attention运算存在的问题 在self-attention中&#xff0c;假设输入序列&#xff08;query&#xff09;长度是N…

【论文阅读】PSDF Fusion:用于动态 3D 数据融合和场景重建的概率符号距离函数

【论文阅读】PSDF Fusion&#xff1a;用于动态 3D 数据融合和场景重建的概率符号距离函数 Abstract1 Introduction3 Overview3.1 Hybrid Data Structure3.2 3D Representations3.3 Pipeline 4 PSDF Fusion and Surface Reconstruction4.1 PSDF Fusion4.2 Inlier Ratio Evaluati…

Apache Storm 2.5.0 单机安装与配置

1、下载storm 2.5.0 2、需要安装python3&#xff0c;并且设置python3的环境变量 3、修改storm.yaml配置 storm.zookeeper.servers:- "node4" # - "server2" # # nimbus.seeds: ["host1", "host2", "host3"] # nimbus…

中标麒麟操作系统网络应用服务部署与实现

文章目录 一、麒麟操作系统概述与网络应用服务部署背景1.1 中标麒麟操作系统介绍1.2 网络应用服务部署的意义和背景 二、网络应用服务部署方案设计2.1 方案设计原则与目标2.2 硬件与软件需求分析2.3 网络应用服务拓扑结构设计与配置 三、中标麒麟操作系统的安装与配置3.1 安装准…

CSDN中: Markdown编辑器使用说明

Markdown编辑器使用说明 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一…

Spring-循环依赖简述

什么是循环依赖 // A依赖了B class A {public B b; } ​ // B依赖了A class B {public A a; } ​ // 循环依赖 A a new A(); B b new B(); a.b b; b.a a; 对象之间的相互依赖很正常&#xff0c;但是在Spring中由于对象创建要经过Bean的生命周期&#xff0c;所以就有了循环…