所以,我是一个核心的脚本猴子。最近我似乎也因为一些奇怪的原因而陷入设计之中,而且,我只想说我应该更好地学习。
无论哪种方式 - 我要问的是,构建网站的正确方法是什么?
这个有一个带有链接的标题,然后是一个带有标签的块,位于另一个块的下面,该块由两部分组成,还有一些我还没有的部分。
然而,问题是,我需要创建一个由两个部分组成的块,这两个部分位于同一个框中但是独立构建。
我会尝试画出来。
Browser window..................-[]X
------------------------------------
|.................Header Links Here|
||Tab|Tab|Tab|_____________........|
||Tab content.............|Small...|
||........................|Section.|
||---Line signing new section------|
||........................|Another.|
||..Content Area..........|Small...|
||........................|Section.|
------------------------------------
我的问题在于划分小部分和标签/内容区域。
我尝试使用浮动,将它们作为表格,对齐等等。
两个牌桌上的推杆浮动:左侧工作。均田。直到我试图调整窗口大小。
那么,您如何正确构建这样的网站?三个表和桌子?还有别的吗?
我将再次澄清:这是用于创建上面的代码的代码,我正在尝试找出正确的方法,而不是 design
根据要求,这是我目前的结构
<div class="container">
<div class="topBlock">
//Header Links Here </div>
<div class="inputBlock">
<ul id="tabs">
<li><a href="#strict">Strict</a></li>
<li><a href="#flex">Flex</a></li>
<li><a href="#multiStep">Multi-Step</a></li>
</ul>
<div id="strict" class="tabContent">
<table class="tableLeft">
<tr>
<td>From</td>
</tr>
<tr>
<td><input id="inputBlockFrom" type="text" placeholder="FROM"/></td>
</tr>
<tr>
<td>To</td>
</tr>
<tr>
<td><input id="inputBlockTo" type="text" placeholder="TO"/></td>
</tr>
</table>
<table class="tableRight">
<tr>
<td>Leave</td>
</tr>
<tr>
<td><input id="inputBlockLeave" type="text" name="leave" placeholder="LEAVE"/></td>
<td><input id="inputBlockOne" type="radio" name="one"/></td>
<td>One</td>
</tr>
<tr>
<td>Return</td>
</tr>
<tr>
<td><input id="inputBlockReturn" type="text" name="return" placeholder="RETURN"/></td>
<td><input id="inputBlockBut" type="radio" name="one" checked/></td>
<td>Return</td>
</tr>
<tr>
<td><input id="inputBlockSubmit" type="submit" value="Search"/></td>
</tr>
</table>
</div>
<div id="flex" class="tabContent">
Test Two
</div>
<div id="multiStep" class="tabContent">
Test Three
</div>
</div>
<div class="mapBlock tabContent">
<table class="tableLeft">
<tr><td>
<div id="map" class="google_map"></div>
</td></tr>
</table>
<table class="tableRight smallTable">
<tr>
<td>Distance</td>
</tr>
<tr>
<td>[-------------|------------]</td> //Slider to be
</tr>
</table>
<table class="tableRight smallTable">
<tr>
<td>Choice / Choice</td>
</tr>
</table>
<table class="tableRight">
<tr>
<td>Show:</td>
</tr>
<tr>
<td><input type="radio"/></td>
<td>Price</td>
<td><input type="radio"/></td>
<td>Button!</td>
</tr>
<tr>
<td><input type="radio"/></td>
</tr>
<tr>
<td><input type="radio"/></td>
</tr>
</table>
</div>
</div>
</body>
对不起,如果它在某处的whitespacing中搞砸了..
CSS:
body {
font-size: 80%;
font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
background-color: #e2edff;
}
.container {
margin: 5px 5px 5px 5px;
padding: 5px 5px 5px 5px;
}
.pageBlock {
/* To future me: This class is for One Full Screen ideas */
min-height: 300px;
}
.topBlock {
text-align: right;
color: #000000;
}
.topBlock a {
text-decoration: none;
color: #000000;
}
.tableLeft {
width: 75%;
float: left;
border-right: dotted 2px black;
}
.tableRight {
float: left;
overflow: auto;
}
.smallTable {
border-bottom: 1px dotted #c9c3ba;
}
.google_map {
height: 270px;
width: 100%;
}
答案 0 :(得分:4)
这是我对html进行建模的example。
备注的
anchor
[<a>
]以获得更灵活的样式,我没有在示例中试图阻止膨胀的CSS。 / LI>
#page > #content
结构可能是多余的。但是,我将其包含在内是因为如果你想将#sidebar
作为兄弟#content
包含在内,这是正确的,允许包装器的样式[#page
] <div class="wrapper">
<div id="header">
<h1>Header</h1>
</div>
<div id="nav">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
<div id="page">
<div id="content">
<div class="section" id="section-1">
<div class="tabs left">
<ul>
<li>Tab 1</li>
<li>Tab 2</li>
<li>Tab 3</li>
</ul>
<div class="tab">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
<div class="tab">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
<div class="tab">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
</div>
<div class="sub-sections right">
<div class="sub-section">
A section
</div>
<div class="sub-section">
And another
</div>
<div class="sub-section">
just for kicks
</div>
</div>
<div class="clearfix"></div>
</div>
</div>
<div class="section" id="section-2">
<div class="left">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
<div class="sub-sections right">
<div class="sub-section">
A section
</div>
<div class="sub-section">
And another
</div>
<div class="sub-section">
just for kicks
</div>
</div>
<div class="clearfix"></div>
</div>
</div>
</div>
.wrapper {
width:90%;
margin:0 auto;
}
.wrapper > div {
width:auto;
margin-bottom:10px;
border-bottom:1px solid #f0f0f0;
}
.section {
min-height:200px;
margin-bottom:10px;
border:1px solid #f0f0f0;
border-bottom-width:5px;
}
.section > .left {
width:80%;
float:left;
}
.section > .right {
width:20%;
float:right;
}
.tabs ul li {
display:inline;
background:#f0f0f0;
margin-right:5px;
}
.tabs .tab {
display:none;
}
.tabs .tab:nth-child(0n+1) {
display:block;
}
.section .sub-sections .sub-section {
margin-bottom:5px;
background:#f0f0f0;
}
/* Independently Style Sections Here */
#section-1 {border-color:red;}
#section-2 {border-color:green}
/* Clear Floated Elements
----------------------------------------------------------------------------------------------------*/
/* http://sonspring.com/journal/clearing-floats */
.clearfix {
clear: both;
display: block;
overflow: hidden;
visibility: hidden;
width: 0;
height: 0;
}
/* http://perishablepress.com/press/2008/02/05/lessons-learned-concerning-the-clearfix-css-hack */
.clearfix:after {
clear: both;
content: ' ';
display: block;
font-size: 0;
line-height: 0;
visibility: hidden;
width: 0;
height: 0;
}
.clearfix {
display: inline-block;
}
* html .clearfix {
height: 1%;
}
.clearfix {
display: block;
}
答案 1 :(得分:1)
现在构建页面的标准方法是使用div标签,虽然我需要的不仅仅是3个。表格往往不用于布局:它们会给页面增加很多权重。
您是如何设置浮动元素的宽度的?当窗口调整大小时,百分比将保持一致,而像素将保持不变。
答案 2 :(得分:0)
首先,为什么这条线路一直贯穿两个部分?可能性每次都不会是相同的长度。你应该把它分成两个不同的行,每个区域一个。
我会这样构造:(假设各个部分的大小不同)
<div id="container">
<ul id="Nav">
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
...
</ul>
<div id="main">
<ul id="tab">
<li><a href="#">Tab</a></li>
<li><a href="#">Tab</a></li>
</ul>
<div id="content">
Lorem...
<hr />
Lorem...
</div>
</div>
<div id="side">
Lorem...
<hr />
Lorem...
</div>
</div>
让#main和#side向左浮动,宽度为%。 不要在这些中添加任何边距或填充,否则会影响到框模型的整体尺寸。如果你想要填充,在其中添加另一个div,其填充类似于#content。
编辑:已更改,因此各个部分的大小相同。
<div id="container">
<ul id="Nav">
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
...
</ul>
<div id="main">
<ul id="tab">
<li><a href="#">Tab</a></li>
<li><a href="#">Tab</a></li>
</ul>
<div class="section">
<div class="content">
Lorem...
</div>
<div class="side">
Lorem...
</div>
</div>
<hr />
<div class="section">
...
</div>
</div>
答案 3 :(得分:-1)