视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
HTML在两个div标签中间画一条竖线的代码
2020-11-27 15:25:59 责编:小采
文档
近日在画一个界面的时候,遇到一个需求:在界面当中画一条竖线,且这条竖线在高度上需要自动占满整个父p(即这条竖线的高度和两个p中较高的一个等高)。

往常我们画一条横线直接用标签<hr>即可,当画一条竖线的时候发现找不到标签。在网上查找了一下资料,大致推荐用js来做。小弟比较偏执想用纯css来做,最终找到了解决方法,下面我就来分享一下我的做法。

在两个子p中加多一个p,并设置左(右)边框为可见,并且利用利用padding-bottom|margin-bottom正负值相抵消的原理。例如设置 padding-bottom:1600px; margin-bottom:-1600px;我们可以理解为:运用的是padding可以撑开外层标签而margin不用来撑开外层标签。即当padding-bottom时撑开外层标签的高度,外层标签用overflow:hidden;隐藏掉多余的高,这样可以让高度与最高的那一栏对齐;而margin关乎模块布局,margin可以抵消掉padding撑开的盒子使布局能够从内容部分开始。

以下是代码:

body{ 
 margin-top:100px; 
 margin-left:200px; 
} 
.mainp{ 
 width:900px; 
 padding:10px; 
 overflow:hidden; /*关键*/ 
 border:1px solid black; 
} 
.leftp{ 
 float:left; 
 width:400px; 
 background-color:#CC6633; 
} 
.rightp{ 
 float:right; 
 width:400px; 
 background-color:#CC66FF; 
} 
.centerp{ 
 float:left; 
 width:50px; 
 border-right: 1px dashed black; 
 padding-bottom:1600px; /*关键*/ 
 margin-bottom:-1600px; /*关键*/ 
} 

<!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> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>竖线画法</title> 
<link href="../css/demo.css" rel="stylesheet" type="text/css" /> 
</head> 
<body> 
 <p class="mainp"> 
 <p class="leftp"><br><br><br><br><br><br></p> 
 <p class="centerp"></p> 
 <p class="rightp"><br><br><br><br><br><br><br></p> 
 </p> 
</body> 
</html>

效果图:

顺便写一下js的思路和关键代码

比较两个子p的高度哪一高。选择把高的那个p的相邻边框设为可见也可达到目的。

以下是js的代码

function myfun(){ 
 var p1=document.getElementById("content"); 
 var p2=document.getElementById("side"); 
 var h1=p1.offsetHeight; 
 var h2=p2.offsetHeight; 
 if(h1>h2){ 
 p1.style.borderRight="1px dashed #B6AEA3"; 
 }else{ 
 p2.style.borderLeft="1px dashed #B6AEA3"; 
 } 
}

下载本文
显示全文
专题