:hover前面有空格和没有空格有不一样的效果

最近在写一些html样式发现:hover前面有空格和没有空格有不一样的效果,:hover前面没有空格,影响的只是该元素的兄弟节点;但是,如果前面有了一个空格,那效果就大大不一样了,有个空格影响的就是 该元素下面的  子节点了。

实例:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6     <style type="text/css">
 7         ul:hover{
 8             color:red;
 9         }
10
11     </style>
12 </head>
13 <body>
14     <ul>
15         <li>1</li>
16         <li>2</li>
17         <li>3</li>
18         <li>4</li>
19         <li>5</li>
20     </ul>
21     <ul>
22         <li>/</li>
23         <li>*</li>
24         <li>-</li>
25         <li>+</li>
26         <li>.</li>
27     </ul>
28     <ul>
29         <li>a</li>
30         <li>b</li>
31         <li>c</li>
32         <li>d</li>
33         <li>e</li>
34     </ul>
35 </body>
36 </html>

效果图:

但是如果在ul:hover{color:red;}中,ul与:hover中间有一个空格 比如这样:ul :hover{color:red;}   就会又不一样的效果,

实例:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6     <style type="text/css">
 7         ul :hover{
 8             color:red;
 9         }
10
11     </style>
12 </head>
13 <body>
14     <ul>
15         <li>1</li>
16         <li>2</li>
17         <li>3</li>
18         <li>4</li>
19         <li>5</li>
20     </ul>
21     <ul>
22         <li>/</li>
23         <li>*</li>
24         <li>-</li>
25         <li>+</li>
26         <li>.</li>
27     </ul>
28     <ul>
29         <li>a</li>
30         <li>b</li>
31         <li>c</li>
32         <li>d</li>
33         <li>e</li>
34     </ul>
35 </body>
36 </html>

效果图:

仔细观察的同学,你会发现这两张图片实现的效果是不一样的

第一张图片上的第二个ul的字体颜色变为红色,而第二张图片上只有第二个ul下的某个子节点的字体颜色变为红色了。

总结:ul:hover{color:red;}与ul :hover{color:red;}的区别,也就是第一个影响的是ul的兄弟节点,第二个影响的是ul的子节点。
也就是说:hover前面没有空格影响的是元素的兄弟节点,:hover前面有空格影响的就是元素的子节点了。

希望这篇文章对大家有所帮助,

到此本文结束,如果还有什么疑问或者建议,可以多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。

若有转载,请注明出处!!!

如果本文对你有帮助,请点下推荐,谢谢!

时间: 2024-12-23 00:48:59

:hover前面有空格和没有空格有不一样的效果的相关文章

java去掉全角空格和半角空格的方法,

JAVA中去掉空格 1. String.trim() trim()是去掉首尾空格 2.str.replace(" ", ""); 去掉所有空格,包括首尾.中间 String str = " hell o "; String str2 = str.replaceAll(" ", ""); System.out.println(str2); 3.或者replaceAll(" +","

c# 字符串中多个连续空格转为一个空格

#region 字符串中多个连续空格转为一个空格 /// <summary> /// 字符串中多个连续空格转为一个空格 /// </summary> /// <param name="str">待处理的字符串</param> /// <returns>合并空格后的字符串</returns> public static string MergeSpace(string str) { if (str != string

用JS去掉前后空格或中间空格大全

1.  去掉字符串前后所有空格: -- js实现trim功能 //去除字符串前后所有空 function Trim(str) { return str.replace(/(^\s*)|(\s*$)/g, ""); }//在字符串原型上添加方法也可String.prototype.Trim = function(){ return this.replace(/(^\s*)|(\s*$)/g, "");} //去除字符串前面空格String.prototype.LTri

C#:将字符串中连续空格转换为一个空格

使用正则表达式来进行转换,代码如下: 注:Trim()方法是去掉字符串首尾的空格:经过正则转换之后,就可以直接用Split进行分割成数组 "\":是转义  ,   "\s":代表空格   ,  "+":表示多个 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 string str = " a b c d e f "; 6 string res = new

多个空格用一个空格代替

目录 1. 提出问题 2. 问题分析 2-1 提取问题基本元素 2-2 单个元素分析 3. 源代码 1. 提出问题 编写一个将输入复制到输出的程序,并将其中连续的空格用一个空格代替. 2. 问题分析 2-1 提取问题基本元素 输入 输出 多个空格 用一个空格代替 2-2 单个元素分析 ==输入和输出==问题,C语言中有如下相关函数: gatchar() 读取标准输入流中下一个字符 int putchar ( int character ); putchar() 写入一个字符到标准输出流 int

php 去除所有空格 包括中文空格圆角空格

有的中文的半角,圆角空格或者段落符显示为空白的.可以用正则来处理 preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/","",$content);

编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,用空格来分隔单词。

char str[255] = {0}; printf("请输入一个字符串:\n"); scanf("%[^\n]", str);//意思是非'\n'.也就是说只要没有遇到换行就继续输入,当遇到换行符的时候此语句结束.而默认情况是遇到换行语句执行结束,但是str的值只是第一个空格前的值.但这样写,按回车时scanf执行完,中间所有内容包括空格都会输入到str中去. // gets(str); int maxLength = 0, maxIndex = 0; int

sublime text 代码编辑器修改TAB为空格,设置空格缩进大小

sublime text 是一款非常优秀的代码编辑器,界面简洁优美,功能强大,使用十分便捷,如果喜欢这款代码编辑器朋友可以到官网下载安装. sublime text 默认的制表符是TAB,但是为了保证代码在各种环境下的规范性,开发人员会将TAB改为空格(space),缩进一次为两个空格.在 sublime text 我们可以也非常简单的设置这些参数. 启动 sublime text ,依次进入菜单 Preferences—>Settings - More—>Syntax Specific -

关于JAVA正则匹配空白字符的问题(全角空格与半角空格)

今天遇到一个字符串,怎么匹配空格都不成功!!! 我把空格复制到test.properties文件 显示“\u3000” ,这是什么? 这是全角空格!!! 查了一下    \s    不支持全角 1."\s"匹配的是哪一种空格? 正则表达式中\s匹配任何空白字符,包括空格.制表符.换页符等等:中文全角空格 \s 并不能匹配中文全角空格. \s 只能匹配下面六种字符(详见 java.util.regex.Pattern 的 API DOC): 半角空格( ) 水平制表符(\t) 竖直制表符