DIV+css内容太长,怎么实现点击展开余下全文

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DIV+css内容太长,怎么实现点击展开余下全文相关的知识,希望对你有一定的参考价值。

文章内容太多,把页面撑得很长影响美观。
有没什么办法可以实现当文章内容超过固定高度后,收缩起来,显示一个“展开余下全文”按钮,用户一点击后就显示全部内容。
可以的话直接给我个写好简单的案例,谢谢了。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文章高度展开</title>
<style>
#myarticle
width:700px;
height:300px;
overflow-y:hidden;
border:1px solid green;
margin:20px auto;

p
text-indent: 2em;
margin-bottom: 10px;

button
width:700px;
margin:10px auto;
text-align: center;
display: none;

</style>
</head>
<body>
<div id="myarticle">
<p>你们好!首先,你们看到的这个标题够“屌”的吧?!这是我13岁女儿对我的昵称。您别以为这小家伙“没大没小的没家教”或是什么“问题少年”,恰恰相反,我的女儿挺优秀,小学毕业前得过“北京市红领巾奖章”,作文集被人民邮电出版社出版过(她不让到处说)……老汉自认为在教育孩子上有点经验,所以在“携手在线”和大家分享,既是为“携手在线”呐喊助威,也是“幼吾幼以及人之幼”吧,期望您多少有点收获。</p>
<p>其次,您别指望从我这儿能学到什么。世界上找不到两片完全一样的树叶,更何况人了?!我怎么教育孩子,只适用于我女儿,与您的娃没有半毛钱关系,尤其是血缘上(够屌吧)!可话又说回来了,“隔行如隔山,但隔行不隔理”,毕竟孩子是大人的“简装版”,都会饿吃、困睡,见好处就上、见麻烦就躲……所谓进步,就是不断消除无知、克服缺点、纠正错误的过程,就是不断改掉坏毛病、养成好习惯、修炼优良作风与涵养的过程,就是不断追寻、发现、遵从和捍卫真理的过程。这些道理是相通的,因此,您看了我的话,也许能有所启发,这工夫就没白花。</p>
<p>最后,在单位上班,几乎所有人都被提醒过:“领导交办的事情不好好做,还想不想在这儿混了?!”同理,男欢女爱造人容易,给什么孩子可就是上天的事了。孩子是上天赐予的礼物和任务,我们应常怀敬畏之心、竭尽浑身吃奶之力,要“在孩子的引领下,跑在孩子前面(这句话更屌,您转过弯儿了吗)”,让孩子教会我们,我们再影响孩子。“上天交办的事情不好好做,还想不想活了?!”</p>
<p>说到单位,屌叔也是有单位的人,作为志愿者和“携手在线”的粉丝(简称手撕,然后牛肉、鸡肉的有木有?肚子咕咕叫、口水往下流的有木有)在这里干点善事,一定为“携手在线”和网友们尽心竭力。不过,既然东家给俺发工资,咱也得给东家好好干活不是?!即使不能贴金,起码不能让东家丢脸吧!因此,屌叔有空就会与大家聊聊,没空您也别……就是没空呗。如果有什么问题,您尽管留言,屌叔一定答复,就是时间没准,屌呗!</p>
<p>BTW,取名屌叔,还因为必须说点屌事,以后大家慢慢懂呵……</p>
<p>非常感谢女儿和她同年同月同日生的小伙伴,是两个孩子的四只小手,牵起了两个家长的四只大手(八爪鱼有木有),携手在线为您忽悠,还要感谢携手在线的姑娘、小伙们,你们应该的呵!</p>
</div>
<button id="btn">查看更多……</button>
<script>
var btn = document.getElementById(\'btn\');
var obj = document.getElementById(\'myarticle\');
    var total_height =  obj.scrollHeight;//文章总高度
    var show_height = 300;//定义原始显示高度
    if(total_height>show_height)
    btn.style.display = \'block\';
    btn.onclick = function()
    obj.style.height = total_height + \'px\';
    btn.style.display = \'none\';
    
   
    
</script>
</body>
</html>

参考技术A

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>文章高度展开</title>

<style>

#myarticle

width:700px;

height:300px;

overflow-y:hidden;

border:1px solid green;

margin:20px auto;

p

text-indent: 2em;

margin-bottom: 10px;

button

width:700px;

margin:10px auto;

text-align: center;

display: none;

</style>

</head>

<body>

<div id="myarticle">

<p>你们好!首先,你们看到的这个标题够“屌”的吧?!这是我13岁女儿对我的昵称。您别以为这小家伙“没大没小的没家教”或是什么“问题少年”,恰恰相反,我的女儿挺优秀,小学毕业前得过“北京市红领巾奖章”,作文集被人民邮电出版社出版过(她不让到处说)……老汉自认为在教育孩子上有点经验,所以在“携手在线”和大家分享,既是为“携手在线”呐喊助威,也是“幼吾幼以及人之幼”吧,期望您多少有点收获。</p>

<p>其次,您别指望从我这儿能学到什么。世界上找不到两片完全一样的树叶,更何况人了?!我怎么教育孩子,只适用于我女儿,与您的娃没有半毛钱关系,尤其是血缘上(够屌吧)!可话又说回来了,“隔行如隔山,但隔行不隔理”,毕竟孩子是大人的“简装版”,都会饿吃、困睡,见好处就上、见麻烦就躲……所谓进步,就是不断消除无知、克服缺点、纠正错误的过程,就是不断改掉坏毛病、养成好习惯、修炼优良作风与涵养的过程,就是不断追寻、发现、遵从和捍卫真理的过程。这些道理是相通的,因此,您看了我的话,也许能有所启发,这工夫就没白花。</p>

<p>最后,在单位上班,几乎所有人都被提醒过:“领导交办的事情不好好做,还想不想在这儿混了?!”同理,男欢女爱造人容易,给什么孩子可就是上天的事了。孩子是上天赐予的礼物和任务,我们应常怀敬畏之心、竭尽浑身吃奶之力,要“在孩子的引领下,跑在孩子前面(这句话更屌,您转过弯儿了吗)”,让孩子教会我们,我们再影响孩子。“上天交办的事情不好好做,还想不想活了?!”</p>

<p>说到单位,屌叔也是有单位的人,作为志愿者和“携手在线”的粉丝(简称手撕,然后牛肉、鸡肉的有木有?肚子咕咕叫、口水往下流的有木有)在这里干点善事,一定为“携手在线”和网友们尽心竭力。不过,既然东家给俺发工资,咱也得给东家好好干活不是?!即使不能贴金,起码不能让东家丢脸吧!因此,屌叔有空就会与大家聊聊,没空您也别……就是没空呗。如果有什么问题,您尽管留言,屌叔一定答复,就是时间没准,屌呗!</p>

<p>BTW,取名屌叔,还因为必须说点屌事,以后大家慢慢懂呵……</p>

<p>非常感谢女儿和她同年同月同日生的小伙伴,是两个孩子的四只小手,牵起了两个家长的四只大手(八爪鱼有木有),携手在线为您忽悠,还要感谢携手在线的姑娘、小伙们,你们应该的呵!</p>

</div>

<button id="btn">查看更多……</button>

<script>

var btn = document.getElementById('btn');

var obj = document.getElementById('myarticle');

var total_height =  obj.scrollHeight;//文章总高度

var show_height = 300;//定义原始显示高度

if(total_height>show_height)

btn.style.display = 'block';

btn.onclick = function()

obj.style.height = total_height + 'px';

btn.style.display = 'none';

</script>

</body>

</html>

DIV是层叠样式表中的定位技术,全称DIVision,即为划分。有时可以称其为图层。DIV在编程中又叫做整除,即只得商的整数。 DIV元素是用来为HTML(标准通用标记语言下的一个应用)文档内大块(block-level)的内容提供结构和背景的元素。

定义

<div> 可定义文档中的分区或节(division/section)。

<div> 标签可以把文档分割为独立的、不同的部分。它可以用作严格的组织工具,并且不使用任何格式与其关联。

如果用 id 或 class 来标记 <div>,那么该标签的作用会变得更加有效。

注释:<div> 是一个块级元素,也就是说,浏览器通常会在 div 元素前后放置一个换行符。

提示:请使用 <div> 元素来组合块级元素,这样就可以使用样式对它们进行格式化。

DIV 标签

<div> 标签定义 HTML 文档中的分隔(DIVision)或部分(section)。div属于web前端的学习内容,其中<div> 标签常用于组合块级元素,以便通过样式表来对这些元素进行格式化。<div> 可定义文档中的分区或节(division/section)。<div> 标签可以把文档分割为独立的、不同的部分。它可以用作严格的组织工具,并且不使用任何格式与其关联。如果用 id 或 class 来标记 <div>,那么该标签的作用会变得更加有效。

当我们使用 CSS-P 的时候, 我们主要把它用在 DIV(division)tag 上。当你把文字,图像,或其他的放在 DIV 中,它可称作为“DIV block”,或“DIV element”或“CSS-layer”,或干脆叫“layer”。而中文我们把它称作“层次”。所以当你以后看到这些名词的时候,你就知道它们是指一段在 DIV 中的 HTML。

使用 DIV 的方法跟使用其他 tag 的方法一样:

如果单独使用 DIV 而不加任何 CSS-P, 那么它在网页中的效果和不使用是一样的。

但当我们把 CSS-P 用到 DIV 中去以后,我们就可以严格设定它的位置。首先我们需要给这个可以被 CSS-P 控制的 DIV 一个 ID 或说是它的名字。比如说我们给下面这个 DIV 的名字是 truck。给名字的目的是我们以后可用javascript来控制它, 比如说移动它或改变它的一些性质等等。

给层次取什么名字是随意的,名字可以是任何英文字母和数字,但第一个必须是字母。有两种把 CSS-P 应用到 DIV 的方法。

Inline CSS:Inline是最常用的方法。

ExternalSTYLE tag:使用 External 方法的结果是一样的。我们会在以后的课程里再详细解释这种方法。这里我们主要讨论Inline 方法。请注意在 External 方法里,在 STYLE 里的 ID 和 DIV 里的关系。

<STYLE TYPE="text/css";>

<!--#百度百科风格从这里开始-->

</STYLE>

Cross-Browser CSS 性质:

我们这个课程的主要目的是让你写出的网页在 NS4 和 IE4 上都能工作, 所以我们主要讨论那些对俩者都通用的性质。下面这些性质符合由W3C给出的标准。

position 决定 DIV tag 是如何放置的。“relative”意思是DIV的位置是相对于自身tag的,而“absolute”是说 DIV tag 的位置是相对于它父级relative的窗口或者body标签。

left 相对于窗口左边的位置

top 相对于窗口上边的位置

width DIV tag 的宽度。所有在 DIV 里的文字或html都在里面。

height DIV tag 的高度。这个性质很少用除非你想 Clip 层次。

clip 给出 layer 的 clipping(可看的见的)部分。Clip 可使得 DIV 显示为一个可以定义的很准确的方块。你可以用以下的四个值来给出这个方块的在 DIV 位置和大小。

clip:rect(top,right,bottom,left);

visibility 隐蔽或展现DIV 根据它的值“visible”,“hidden”,“inherit”。

z-indexDIV tag 的立体位置。值越大 DIV 的位置越高。

background-color DIV 背景的颜色。

layer-background-color Netscape 的 DIV 背景颜色。

background-image DIV 的背景图像。

layer-background-image Netscape 的 DIV 的背景图像。

HTML <div> 标签

参考技术B 给你个思路
给内容所在的div写一个高度和overflow:hidden,这样可以实现超过高度的内容隐藏。
再给“展开余下全文”加一个脚本事件,click时去掉overflow:hidden样式。追问

我是个小白,有没有写好的演示呢?

怎么用js实现,点击“继续”,隐藏当前div,显示下一个div,点击“返回”隐藏当前div,显示上一个div

document.getElementByID('continue').onclick = function()
//找到所有的div
var div = document.getElementByTagName('div');

//循环div,找到处于显示状态的div将其隐藏,并将其下一个div显示
for(var i=0,len = div.length;i<len;i++)
if(div[i].style.display === 'block')
div[i].style.display = 'none';
div[i+1].style.display = 'block';
break;




document.getElementByID('back').onclick = function()
//找到所有的div
var div = document.getElementByTagName('div');

//循环div,找到处于显示状态的div将其隐藏,并将其下一个div显示
for(var i=0,len = div.length;i<len;i++)
if(div[i].style.display === 'block')
div[i].style.display = 'none';
div[i-1].style.display = 'block';
break;


我大概写了下,你看着改改把

追问



11111

2222

3333

追答

你把var div = document.getElementByTagName('div');这段改成
var div = document.getElementByID('box').children;
然后input加上id

追问

还是不行,麻烦发个源码个我,460796496

参考技术A <body>
<input name="my_btn" type="button" value="继续" />

<!-- A div -->
<div class="Adiv">A div</div>

<!-- B div -->
<div class="Bdiv" style="display:none;">B div</div>
</body>

$(function()
$('input[name=my_btn]').click(function()
if ($('div.Adiv').is(':hidden'))
$('div.Adiv').fadeIn(0);
$('div.Bdiv').fadeOut(0);
$(this).val('继续');
else
$('div.Adiv').fadeOut(0);
$('div.Bdiv').fadeIn(0);
$(this).val('返回');

);
);
========================================================================

<div id="box">
<div style="display:block;">11111</div>
<div style="display:none;">2222</div>
<div style="display:none;">3333</div>
</div>
<input name="a_btn" type="button" value="返回"/>
<input name="b_btn" type="button" value="继续"/>

$('input[name=a_btn], input[name=b_btn]').click(function()
var _index = $('div#box div:visible').index(), _t = $('div#box div').length;
$('div#box div:visible').fadeOut(0);
$('div#box div:eq('+($(this).prop('name')==='a_btn'?_index-1<0?_t-1:_index-1:_index+1>_t-1?0:_index+1)+')').fadeIn(0);
);
参考技术B <script>

function show()
var div1=document.getElementById("div1");
var div2=document.getElementById("div2");
div1.style.display="none";
div2.style.display="block";


function hide()
var div1=document.getElementById("div1");
var div2=document.getElementById("div2");
div1.style.display="block";
div2.style.display="none";


</script>
<style>
#div1width:400px; height:400px; background:#0CC; display:block;
#div2width:400px; height:400px; background:#000; display:none;
</style>
</head>

<body>
<div id="div1"></div>
<div id="div2"></div>

<input type="button" id="btn1" value="继续" onclick="show()">
<input type="button" id="btn2" value="返回" onclick="hide()">

用js写太麻烦了,建议用jquery追问

额,我不只2个div,4个

追答

你是像要轮播效果?我只能说赶快学jquery吧

以上是关于DIV+css内容太长,怎么实现点击展开余下全文的主要内容,如果未能解决你的问题,请参考以下文章

怎么用js实现,点击“继续”,隐藏当前div,显示下一个div,点击“返回”隐藏当前div,显示上一个div

js怎么获取当前点击的div里面 span里面的值

安卓开发类似于uc这种点击下滑内容的是怎么实现的啊。

八爪鱼采集器怎么设置展开全文

通过css控制div内容展开更多/收起效果

通过css控制div内容展开更多/收起效果