网页制作不得不知道的技巧有什么
发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,今天就跟大家聊聊有关网页制作不得不知道的技巧有什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、 IE6 下z-index无效。在CSS中
千家信息网最后更新 2024年11月14日网页制作不得不知道的技巧有什么
对应CSS为:#blank{width:100%; height:600px; background:black; opacity:0.4; filter:alpha(opacity=40); position:absolute; left:0; top:0; z-index:1;}
作用是为了让层级关系一目了然。看:
这说明内容在z-index为1的绝对定位层之下。
这说明内容在z-index为1的绝对定位层之上。
2、页面上做对比的是美女图片,图片在半透明黑色绝对定位层的上面还是下面很容易辨别,这样,您就能够对我所说的z-index不起作用有很直观的认识了。
2、IE6的抱怨:浮动让我沉沦
现在开始真正的讲述问题的产生,原因以及解决了。首先讲讲第一种z-index无论设置多高都不起作用情况。这种情况发生的条件有三个:1、父标签 position属性为relative;2、问题标签无position属性(不包括static);3、问题标签含有浮动(float)属性。
您可以拿下面的代码自己做个简单测试:
丫的,这z-index都9999了,层级够高吧,但是,看下面的图:
这一对比就知道问题了,可能有人会疑问,这会不会是IE6的relative自己感冒了,而不是浮动(float)携带了"甲流病毒"。好,我现在去掉浮动,HTML代码如下:
结果IE6下:
我想,问题应该都清楚了,至于原因,我起初以为是haslayout搞的鬼,后来,用zoom一测试,发现不是(IE7下无此bug也证明不是 haslayout的原因),似乎就是这个float会让z-index失效。由于将外部div的position:relative属性改为 absolute可以解决这一问题,我就怀疑是不是浮动让relative发生了些变化,float与relative在水平定位上可以说是近亲,会不会 是因为这两者搅和在一起所以什么"畸形""体弱多病"就出现了。这仅是我的猜测而已,真正的原因还是去问IE6的后妈吧。
解决方法,解决方法有三,1、position:relative改为position:absolute;2、去除浮动;3、浮动元素添加position属性(如relative,absolute等)。
3、固执的IE6:它只认第一个爸爸
可能不少人知道,这IE6下,层级的高低不仅要看自己,还要看自己的老爸这个后台是否够硬。用术语具体描述为:
父标签position属性为relative或absolute时,子标签的absolute属性是相对于父标签而言的。而在IE6下,层级的表现有时候不是看子标签的z-index多高,而要看它们的父标签的z-index谁高谁低。
有一定经验的人可能都知道上面的事实。但是,相信这里面很多人不知道IE6下,决定层级高低的不是当前的父标签,而是整个DOM tree(节点树)的第一个relative属性的父标签。有时平时我们多处理一个父标签,z-index层级多而复杂的情况不多见,所以难免会有认识上 的小小偏差。
好,下面展示这个bug。
条件很简单,只要绝对定位的第一个元素的第一个爸爸,或者说是最老的那个爸爸级别的人的relative属性小于黑色半透明层的z-index层级。例如下面的HTML代码:
可以看到,mm3图片的父标签div 是绝对定位,层级9999,比1大多了,绝对定位的父标签层级1000(10000也一样),也比黑色半透明层的z-index:1大多了,但是,我们可怜的IE6童鞋——
再看看以Firefox为代表的其他童鞋:
IE7与IE6有着同样的bug,原因很简单,虽然图片所在div当前的老爸层级很高(1000),但是由于老爸的老爸不顶用,可怜了9999如此强势的孩子没有出头之日啊!
知道原因解决就很轻松了,给第一任老爸添加z-index后的HTML代码如下:
结果IE6童鞋喜笑颜开,春光灿烂:
二、css reset中的list-style:none
在日常工作中经常需要对ul,li进行css reset ,将列表符号隐藏.最常用的写法就是Ul,li,ol{list-style:none;}(也有人用ul,li,ol{list-style-type:none;})
常见的用法
这个页面在IE6,7,8,FF中都没什么问题.
但是我们不能忽略的是,list-style: 包含了三个属性: list-style-type,list-style-position,list-style-img
如果不注意这三个属性的话,list-style有时候就会出来捣蛋
比如当ul,浮动后,需要display:inline 来解决在IE6中的双倍边距问题时,奇怪的事情发生了:
奇怪的事情发生了
.ul01{float:left;display:inline;}
.ul01,.ul01 li{list-style:none;}
上面的页面在ie8,ff中仍然正常
但是在IE6,7中,ul内侧与li产生了距离.
由此可见,当我们定义了list-style:none以后,尽管列表符并不出现,但是在IE6,7中,仍然留有它的位置.
看看在FF里这个UL到底拥有哪些属性
图上可见,当css中定义list-style:none时,对list-style-position 并没有影响,仍然是FF浏览器的默认设置,值为outside
而IE6,7中很可能默认list-style-position:inside
为了证实这一点,我把list-style:none 换为list-style:none inside none再测试了一下
强制inside
运行后可以发现,在IE6,7中,与list-style:none的表现一模一样.
所以我推测在IE6,7中当UL具有float:left和display:inline属性后,设置了list-style:none,则list-style-position也默认为inside了;
所以我得出的总结是
在IE6,7下,当UL不具有float:left;display:inline;时:
无论有没有list-style:none这个属性,列表符都被隐藏,不占位置(下面代码中的5,6)
当UL具有float:left;display:inline;属性时
list-style:none,列表符被隐藏,但是仍然留有位置(list-style-position:inside);(下面代码中的 UL1,ul3)
未设置list-style:none;列表符被隐藏,也不占位(list-style-position:outside)(代码UL4)
而UL02 在参与测试的各浏览器中表现都比较理想
最后这一段代码对比一下各种情况下list-style的表现,尤其注意4,5,6在IE6,7下的表现
list-style:none还是list-style:none outside none;
通过上面代码表现结果的对比,我认为:
在firefox中只要list-style-type为none ,则无论list-stype-position的值为outside或inside , list-style都能很好的被隐藏
而在IE6,7中,仅设置list-style:none,并不足以解决所有问题
所以我认为在css reset的时候使用 list-style:none outside none 更好
三、CSS强制不换行
在一个规定宽度大小的ul里边 我把li的宽度定义为自动。企图让li根据内容长度来自动向左对齐排列。
例如宽度为210px的ul里 分别有4个li 这个4个li的宽度根据它们的自身内容长度为80px、120px、140px、80px。
我需要的效果是4个li向左自动排列。当第三个li和前两个li的长度之和大于ul的宽度时候 第三个li则会下移一行。在第二行显示。而不是把ul撑宽,或者是把自己撑高(内容换行,高度增加)
分别定义了ul的宽度210px和li的宽度自动,发现结果是:
ul并没有被撑宽,可惜li也没有自动到下一样排列。而是内容换行,把li给撑高了。然后死皮赖脸的挤在了第一行。。
仔细考虑过之后认为问题出在li内部内容换行上。于是寻找禁止换行的css属性。
解决方法:
给li加white-space:nowrap强制不换行属性。
今天就跟大家聊聊有关网页制作不得不知道的技巧有什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
一、 IE6 下z-index无效。
在CSS中,通过z-index这个属性改变层级,要让z-index起作用有个前提,就是元素的position属性要 是relative,absolute或是fixed。
z-index层级越高,内容越应该在上面显示。在大部分的浏览器在大部分的情况下,确实如此,但是不绝对,尤其遇到IE6。
1、关于效果截图的些必要说明
下面的不是废话,是为了更容易的理解我下面唾沫横飞的内容。
以下所有结果截图的大背景如下:
1、页面上固定不动的,一成不变的,送豪宅也不会从良的是一个黑色背景,透明度40%,几乎满屏显示的层级为1的绝对定位层。HTML为:
对应CSS为:#blank{width:100%; height:600px; background:black; opacity:0.4; filter:alpha(opacity=40); position:absolute; left:0; top:0; z-index:1;}
作用是为了让层级关系一目了然。看:
这说明内容在z-index为1的绝对定位层之下。
这说明内容在z-index为1的绝对定位层之上。
2、页面上做对比的是美女图片,图片在半透明黑色绝对定位层的上面还是下面很容易辨别,这样,您就能够对我所说的z-index不起作用有很直观的认识了。
2、IE6的抱怨:浮动让我沉沦
现在开始真正的讲述问题的产生,原因以及解决了。首先讲讲第一种z-index无论设置多高都不起作用情况。这种情况发生的条件有三个:1、父标签 position属性为relative;2、问题标签无position属性(不包括static);3、问题标签含有浮动(float)属性。
您可以拿下面的代码自己做个简单测试:
丫的,这z-index都9999了,层级够高吧,但是,看下面的图:
这一对比就知道问题了,可能有人会疑问,这会不会是IE6的relative自己感冒了,而不是浮动(float)携带了"甲流病毒"。好,我现在去掉浮动,HTML代码如下:
结果IE6下:
我想,问题应该都清楚了,至于原因,我起初以为是haslayout搞的鬼,后来,用zoom一测试,发现不是(IE7下无此bug也证明不是 haslayout的原因),似乎就是这个float会让z-index失效。由于将外部div的position:relative属性改为 absolute可以解决这一问题,我就怀疑是不是浮动让relative发生了些变化,float与relative在水平定位上可以说是近亲,会不会 是因为这两者搅和在一起所以什么"畸形""体弱多病"就出现了。这仅是我的猜测而已,真正的原因还是去问IE6的后妈吧。
解决方法,解决方法有三,1、position:relative改为position:absolute;2、去除浮动;3、浮动元素添加position属性(如relative,absolute等)。
3、固执的IE6:它只认第一个爸爸
可能不少人知道,这IE6下,层级的高低不仅要看自己,还要看自己的老爸这个后台是否够硬。用术语具体描述为:
父标签position属性为relative或absolute时,子标签的absolute属性是相对于父标签而言的。而在IE6下,层级的表现有时候不是看子标签的z-index多高,而要看它们的父标签的z-index谁高谁低。
有一定经验的人可能都知道上面的事实。但是,相信这里面很多人不知道IE6下,决定层级高低的不是当前的父标签,而是整个DOM tree(节点树)的第一个relative属性的父标签。有时平时我们多处理一个父标签,z-index层级多而复杂的情况不多见,所以难免会有认识上 的小小偏差。
好,下面展示这个bug。
条件很简单,只要绝对定位的第一个元素的第一个爸爸,或者说是最老的那个爸爸级别的人的relative属性小于黑色半透明层的z-index层级。例如下面的HTML代码:
可以看到,mm3图片的父标签div 是绝对定位,层级9999,比1大多了,绝对定位的父标签层级1000(10000也一样),也比黑色半透明层的z-index:1大多了,但是,我们可怜的IE6童鞋——
再看看以Firefox为代表的其他童鞋:
IE7与IE6有着同样的bug,原因很简单,虽然图片所在div当前的老爸层级很高(1000),但是由于老爸的老爸不顶用,可怜了9999如此强势的孩子没有出头之日啊!
知道原因解决就很轻松了,给第一任老爸添加z-index后的HTML代码如下:
结果IE6童鞋喜笑颜开,春光灿烂:
二、css reset中的list-style:none
在日常工作中经常需要对ul,li进行css reset ,将列表符号隐藏.最常用的写法就是Ul,li,ol{list-style:none;}(也有人用ul,li,ol{list-style-type:none;})
这个页面在IE6,7,8,FF中都没什么问题.
但是我们不能忽略的是,list-style: 包含了三个属性: list-style-type,list-style-position,list-style-img
如果不注意这三个属性的话,list-style有时候就会出来捣蛋
比如当ul,浮动后,需要display:inline 来解决在IE6中的双倍边距问题时,奇怪的事情发生了:
.ul01{float:left;display:inline;}
.ul01,.ul01 li{list-style:none;}
上面的页面在ie8,ff中仍然正常
但是在IE6,7中,ul内侧与li产生了距离.
由此可见,当我们定义了list-style:none以后,尽管列表符并不出现,但是在IE6,7中,仍然留有它的位置.
看看在FF里这个UL到底拥有哪些属性
图上可见,当css中定义list-style:none时,对list-style-position 并没有影响,仍然是FF浏览器的默认设置,值为outside
而IE6,7中很可能默认list-style-position:inside
为了证实这一点,我把list-style:none 换为list-style:none inside none再测试了一下
运行后可以发现,在IE6,7中,与list-style:none的表现一模一样.
所以我推测在IE6,7中当UL具有float:left和display:inline属性后,设置了list-style:none,则list-style-position也默认为inside了;
所以我得出的总结是
在IE6,7下,当UL不具有float:left;display:inline;时:
无论有没有list-style:none这个属性,列表符都被隐藏,不占位置(下面代码中的5,6)
当UL具有float:left;display:inline;属性时
list-style:none,列表符被隐藏,但是仍然留有位置(list-style-position:inside);(下面代码中的 UL1,ul3)
未设置list-style:none;列表符被隐藏,也不占位(list-style-position:outside)(代码UL4)
而UL02 在参与测试的各浏览器中表现都比较理想
最后这一段代码对比一下各种情况下list-style的表现,尤其注意4,5,6在IE6,7下的表现
2:float:left;display:inline; list-style:none outside none;
3: float:left;display:inline;list-style:none inside none;
通过上面代码表现结果的对比,我认为:
在firefox中只要list-style-type为none ,则无论list-stype-position的值为outside或inside , list-style都能很好的被隐藏
而在IE6,7中,仅设置list-style:none,并不足以解决所有问题
所以我认为在css reset的时候使用 list-style:none outside none 更好
三、CSS强制不换行
在一个规定宽度大小的ul里边 我把li的宽度定义为自动。企图让li根据内容长度来自动向左对齐排列。
例如宽度为210px的ul里 分别有4个li 这个4个li的宽度根据它们的自身内容长度为80px、120px、140px、80px。
我需要的效果是4个li向左自动排列。当第三个li和前两个li的长度之和大于ul的宽度时候 第三个li则会下移一行。在第二行显示。而不是把ul撑宽,或者是把自己撑高(内容换行,高度增加)
分别定义了ul的宽度210px和li的宽度自动,发现结果是:
ul并没有被撑宽,可惜li也没有自动到下一样排列。而是内容换行,把li给撑高了。然后死皮赖脸的挤在了第一行。。
仔细考虑过之后认为问题出在li内部内容换行上。于是寻找禁止换行的css属性。
解决方法:
给li加white-space:nowrap强制不换行属性。
看完上述内容,你们对网页制作不得不知道的技巧有什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
属性
层级
标签
内容
问题
奇异
纯净
代码
女孩
思想
文字
校园
梦幻
爱情
男孩
青春
求是
定位
浮动
宽度
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
12123数据库占用查询
云南省网络安全工作
网络安全用户的真实性
通用数据库工具
山东软件开发者
大学数据库系统概论试卷
济南直销软件开发价格表
软件开发案例题目
长沙网络技术学投还招生吗
2017年数据库更新
香港服务器租赁有什么好处
网络技术排名
ctf网络安全大赛小说
服务器429错误
网络安全大赛完成
我的世界电脑版天选之剑服务器
实习软件开发招工
信息网络安全工作自查总结
搭建服务器无限流量
软件开发者选项是指
泰国代理服务器
php连接到数据库
互联网科技行业报告
青浦区信息软件开发质量
怎么看服务器有多少人pvp
重庆软件开发培训学校职中
手机微信网络安全宣传周海报
集群式服务器如何搭建
徐州建天软件开发公司电话
崇明区本地网络技术代理价钱