Javascript 设置带有左右面板的HTML页面
如何设置包含两个内容面的HTML页面?没有Javascript 设置带有左右面板的HTML页面,javascript,css,html,Javascript,Css,Html,如何设置包含两个内容面的HTML页面?没有 例如: 左侧应该是导航菜单。 右边应该是页面的内容 示例菜单: <div id="page"> <div id="menuleftcontent"> <ul id="menu"> <li> <a href="showfirstcontent">first</a></li> <li><
例如:
左侧应该是导航菜单。
右边应该是页面的内容
示例菜单:
<div id="page">
<div id="menuleftcontent">
<ul id="menu">
<li> <a href="showfirstcontent">first</a></li>
<li><a href="showsecondcontent">second</a></li>
</ul>
</div>
<div id="maincontent">
<div id="firstcontent">first</div>
<div id="secondcontent">second</div>
</div>
</div>
第一
第二
左侧的菜单应该是固定内容,右侧的内容应该是可更改的
我画了一幅草图:
提前感谢你能做的最好的事情就是做两个div。一个带有
float:left
,给它一个固定的宽度,然后创建另一个带有边距left
,与菜单宽度相同的
CSS:
HTML:
这是您的菜单
这是你的主要内容
工作示例:
Fiddle URL:
如果您询问如何在没有框架的情况下垂直拆分页面。有一个答案给你
如果您正在寻找解决方案,使每个页面的左侧都有固定内容。然后,您可以在后端web框架中查找称为页面模板或母版页的内容。只需对html应用一些css,如下所示:
#page{
width: 1280px;
display: inline;
}
#menuleftcontent{
float: left;
width: 420px;
}
#maincontent{
float: left;
width: 960px;
}
宽度(例如;) 以下是如何实现内容拆分的示例。虽然,实际上有很多方法可以做到这一点:)
您可以在html中使用下面的css以左右框架结构显示它
#menuleftcontent
{
width: 30%;
float: left;
}
#maincontent
{
width: 70%;
float: left;
}
#page
{
width : 100%;
clear : both;
}
下面是一个CSS示例,用于设置HTML的样式:
<style>
.page{width:100%; min-height:900px;}
.menuleftcontent{min-width:20%;float:left;height:900px;border:dotted 1px red;}
.maincontent{min-width:78%;float:left;height:900px;border:dotted 1px blue;}
</style>
<div id="page" class="page">
<div id="menuleftcontent" class="menuleftcontent">
<ul id="menu">
<li><a href="showfirstcontent" </a>first</li>
<li><a href="showsecondcontent" >second</a></li>
</ul>
</div>
<div id="maincontent" class="maincontent">
<div id="firstcontent" >first</div>
<div id="secondcontent">second</div>
</div>
</div>
.页面{宽度:100%;最小高度:900px;}
.menuleftcontent{最小宽度:20%;浮点:左侧;高度:900px;边框:带点的1px红色;}
.maincontent{最小宽度:78%;浮动:左侧;高度:900px;边框:点蓝色1px;}
第一
第二
重新排列代码,以便(i)主要内容以HTML源代码顺序显示在侧栏之前(ii)添加清除div(iii)更改菜单链接的href
属性:
第一内容
第二内容
然后使用以下CSS:
#第页{
左边距:200px;
}
#主要内容{
浮动:对;
宽度:100%;
背景色:#f0;
}
#菜单内容{
浮动:左;
宽度:200px;
左边距:-200px;
背景色:#中交;
}
#清除div{
明确:两者皆有;
}
对于问题中不清楚的部分,需要使用JavaScript显示/隐藏div。虽然可以使用vanilla JavaScript,但jQuery库使其更容易:
$(函数(){
$(“#maincontent>div:gt(0)”).hide();
$(“#菜单a”)。在(“单击”上,功能(e){
var href=$(this.attr(“href”);
$(“#maincontent>”+href).show();
$(“#maincontent>:not(“+href+”).hide();
});
});
+1尽管是手绘图片。您的html是正确的,现在您只需应用CSS,至少您可以阅读A列表中的文章“”?它不起作用了吗,它是如何失败的,你在实现它时遇到了什么问题?为了拥有一个动态内容,我已经在这里留下了一个解释:类似这样的东西可能是:你可以使用%而不是px来拥有一个可扩展的样式:)剩余的边距!!!这是个坏方法。如果你使用它,你就不能有一个可扩展的样式。请解释为什么
左边距
是一个不好的方式。为了更好的实践,你应该有一个相对长度的灵活布局。这有助于在智能手机和平板电脑领域获得最佳预览。这是一种值得商榷的做法。但是在非常小的屏幕上使用百分比可能无法读取或被破坏(溢出
不是通配符),这就是为什么很多框架不使用百分比,而是根据屏幕尺寸设置像素的原因。好吧,但问题是两个内容同时出现。如何设置,例如在页面加载时,第一个内容出现,当我单击第二个菜单按钮时,第二个内容出现,而旧内容(第一个内容)消失。完美!那工作很棒。如果你现在能告诉我你的例子是如何工作的,在例子中我点击“报告”,一个新的空白页面出现,那么你是我的一天!!!Bootstrap需要jQuery,所以上面的代码应该按原样工作(我不太确定你在问什么)。。。看起来不错。左边是菜单,右边是内容。当我点击“reports”时,右边应该出现在示例“hello”中,当我点击“overview”时,右边应该出现“byebye”。。。。我怎么能意识到这一点?
#page {
width: 100%;
}
#menuleftcontent {
float: left;
width: 25%;
}
#maincontent {
float: left;
width: 75%;
}
#menuleftcontent
{
width: 30%;
float: left;
}
#maincontent
{
width: 70%;
float: left;
}
#page
{
width : 100%;
clear : both;
}
<style>
.page{width:100%; min-height:900px;}
.menuleftcontent{min-width:20%;float:left;height:900px;border:dotted 1px red;}
.maincontent{min-width:78%;float:left;height:900px;border:dotted 1px blue;}
</style>
<div id="page" class="page">
<div id="menuleftcontent" class="menuleftcontent">
<ul id="menu">
<li><a href="showfirstcontent" </a>first</li>
<li><a href="showsecondcontent" >second</a></li>
</ul>
</div>
<div id="maincontent" class="maincontent">
<div id="firstcontent" >first</div>
<div id="secondcontent">second</div>
</div>
</div>