csshover显示隐藏visib

html-css016

csshover显示隐藏visib,第1张

display 设置或检索对象是否及如何显示。

display: none 隐藏对象

display:block 除了转换为块级元素之外,同时还有显示元素的意思。

登录后复制

特点: display 隐藏元素后,不再占有原来的位置。

后面应用及其广泛,搭配 JS 可以做很多的网页特效。实际开发场景:

配合后面js做特效,比如下拉菜单,原先没有,鼠标经过,显示下拉菜单, 应用极为广泛

二、visibility 可见性 (了解)

visibility 属性用于指定一个元素应可见还是隐藏。

visibility:visible  元素可视

visibility:hidden  元素隐藏

登录后复制

特点:visibility 隐藏元素后,继续占有原来的位置。(停职留薪)

如果隐藏元素想要原来位置, 就用 visibility:hidden

如果隐藏元素不想要原来位置, 就用 display:none (用处更多 重点)

三、overflow 溢出(重点)

overflow 属性指定了如果内容溢出一个元素的框(超过其指定高度及宽度) 时,会发生什么。

属性值 描述

visible 不剪切内容也不添加滚动条

hidden 不显示超过对象尺寸的内容,超出的部分隐藏掉

scroll 不管超出内容否,总是显示滚动条

auto 超出自动显示滚动条,不超出不显示滚动条

一般情况下,我们都不想让溢出的内容显示出来,因为溢出的部分会影响布局。

但是如果有定位的盒子, 请慎用overflow:hidden 因为它会隐藏多余的部分。

四、显示与隐藏总结

属性 区别 用途

display 显示 (重点) 隐藏对象,不保留位置 配合后面js做特效,比如下拉菜单,原先没有,鼠标经过,显示下拉菜单, 应用极为广泛

visibility 可见性 (了解) 隐藏对象,保留位置 使用较少

overflow 溢出(重点) 只是隐藏超出大小的部分 1. 可以清除浮动 2. 保证盒子里面的内容不会超出该盒子范围

css

javascript

公用处理:你先测出你的这个width:100px的DIV一共可以放下多少个字符。这里假设为“LEN”以下相关的也用此代替。

公用的CSS处理:设置DIV的定宽100px,再加个overflow:hidden即溢出部分隐藏。

解法1(后台代码处理):你先对你要输出的内容做strlen()的处理,看你要输出的内容是不是超过了LEN,要是没有超过就给全输出,要是超了,就用substr()函数去适当的截取一个长度,再将它跟你的“......”连超来输出即可。

解法2(JS来做判断):这个原理也跟解法1一样,只不过,你用来做判断的语言换了一种以及判断的处理放在的客户端来做。

方法:

首先,你得给你类似的DIV加个相同的name值,如name="linkDiv"。

其次,你可以在你的HTML页全输出后对调用一个JS函数,来对name="linkDiv"的DIV对其内容做一个处理。注意我这里要求你的更多放在name="linkDiv"之外,原因见后面。

JS函数可以这样写:

function formatStr(){

var i

var LEN= 30//这个值是上面讲到的LEN的值,我这里假设是30

var strLen = 0

var str = ''

var strDiv = document.getElementsByName("linkDiv")

for(i = 0i <strDiv.lengthi++){

strLen = strDiv[i].innerHTML.length

if(strLen >LEN){

str = strDiv[i].innerHTML.substr(0,LEN-6)

str += "......"//上面的 LEN - 6 是来自这里。

}

strDiv[i].innerHTML = str

}

}

以下附上我写的一个测试:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>测试一个SUBSTR</title>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />

<meta http-equiv="Content-Language" content="zh-CN" />

<meta name="Keywords" content="" />

<meta name="Description" content="" />

<link rel="stylesheet" href="style/.css" type="text/css" />

<style type="text/css">

#wrap{

width:950px

height:auto

margin:0px auto

}

.linkDiv{

width:100px

height:auto

overflow:hidden

border:1px dotted #fff000

}

</style>

<script language="javascript">

function formatStr(){

var i

var LEN= 30//这个值是上面讲到的LEN的值,我这里假设是30

var strLen = 0

var str = ''

var strDiv = document.getElementsByName("linkDiv")

for(i = 0i <strDiv.lengthi++){

strLen = strDiv[i].innerHTML.length

if(strLen >LEN){

str = strDiv[i].innerHTML.substr(0,LEN-6)

str += "......"//上面的 LEN - 6 是来自这里。

}

strDiv[i].innerHTML = str

}

}

</script>

</head>

<body>

<div id="wrap">

<div name="linkDiv" class="linkDiv">//这个值是上面讲到的LEN的值,我这里假设是30//这个值是上面讲到的LEN的值,我这里假设是30</div>

<div name="linkDiv" class="linkDiv">//这个值是上面讲到的LEN的值,我这里假设是30//这个值是上面讲到的LEN的值,我这里假设是30</div>

<div name="linkDiv" class="linkDiv">//这个值是上面讲到的LEN的值,我这里假设是30//这个值是上面讲到的LEN的值,我这里假设是30</div>

</div>

<script language="javascript">formatStr()</script>

</body>

</html>

测试通过。