2017-10-13 956 views
1

我想把我的html页面分成两列。一列应该由图像和其他文本填充。我面临以下问题:如何将html页分成两列?

  1. 列不占据确切的50-50宽度。

  2. 图像开始前从左边缘有一个薄边。需要删除该保证金。

  3. 这两列之间存在巨大差距。

这将是真正有用的,如果有人可以看看这个代码,并建议更正:

.container img { 
 
    width: 100%; 
 
} 
 

 
.thin-black-border { 
 
    border-color: black; 
 
    border-width: 05px; 
 
    border-style: solid; 
 
} 
 

 
.header { 
 
    font: 200 80px'Oleo Script', Helvetica, sans-serif; 
 
    color: #2b2b2b; 
 
    text-shadow: 4px 4px 0px rgba(0, 0, 0, 0.1); 
 
}
<link href='http://fonts.googleapis.com/css?family=Oleo+Script' rel='stylesheet' type='text/css'> 
 
<div style="width:100%; height: 100px;background-color:green" class="bg-faded"> 
 
    <!-- Main Div --> 
 
    <h1 class="text-center header">Madhubala</h1> 
 
</div> 
 
<div style="float:left;width:50%;" class="container"> 
 
    <img src="https://nehamalude.files.wordpress.com/2011/02/madhubala.jpg" class="thin-black-border" /> 
 
</div> 
 
<div style="float:left; width:50%; background-color:red; "> 
 
    Right 
 
</div>

+0

使用引导:https://www.w3schools.com/bootstrap/bootstrap_grid_stacked_to_horizo​​ntal.asp –

+4

你不需要使用引导来创建2列布局。 – zik

回答

4

body{ 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
.container img { 
 
    width: 100%; 
 
} 
 

 
.thin-black-border { 
 
    border-color: black; 
 
    border-width: 05px; 
 
    border-style: solid; 
 
} 
 

 
.header { 
 
    font: 200 80px'Oleo Script', Helvetica, sans-serif; 
 
    color: #2b2b2b; 
 
    text-shadow: 4px 4px 0px rgba(0, 0, 0, 0.1); 
 
} 
 
.main-wrap{ 
 
    display: flex; 
 
    flex-direction: row; 
 
} 
 
.main-wrap > div{ 
 
    flex: 1; 
 
}
<link href='http://fonts.googleapis.com/css?family=Oleo+Script' rel='stylesheet' type='text/css'> 
 
<div style="width:100%; height: 100px;background-color:green" class="bg-faded"> 
 
    <!-- Main Div --> 
 
    <h1 class="text-center header">Madhubala</h1> 
 
</div> 
 
<div class="main-wrap"> 
 
    <div class="container"> 
 
    <img src="https://nehamalude.files.wordpress.com/2011/02/madhubala.jpg" class="thin-black-border" /> 
 
    </div> 
 
    <div style="background-color:red; "> 
 
    Right 
 
    </div> 
 

 
</div>

如何使用display: flex

+0

我会加: '.container img { ... box-sizing:border-box; }'尊重图像边界 – zdolny

-1

您可以简单地使用表: 方法1:

<table border="1"> 
 
    <tr> 
 
    <td>You can add content here</td> 
 
    <td>You can add content here</td> 
 
    </tr> 
 
</table>

方法2:

<div style="display:block; width:100%;"> 
 
    <div style="width:50%; float: left; display: inline-block;">Your content</div> 
 
    <div style="width:50%; float: left; display: inline-block;">Your content</div> 
 
</div>

方法3(使用Flex):

<div class="flexbox-container" style="display:flex;"> 
 
     <div class="sidebar" style="flex:1;">Test column 1</div> 
 
     <div class="main" style="flex:1;">Test column 2</div> 
 
    </div>

+0

将display:inline-block设置为浮动元素的要点是什么?它的display [[计算]](https://drafts.c​​sswg.org/css2/visuren.html# dis-pos-flo)'块'反正? –

0

添加宽度= 100%的图像。

使用一个CSS复位去除边缘

/* http://meyerweb.com/eric/tools/css/reset/ 
    v2.0 | 20110126 
    License: none (public domain) 
*/ 

html, body, div, span, applet, object, iframe, 
h1, h2, h3, h4, h5, h6, p, blockquote, pre, 
a, abbr, acronym, address, big, cite, code, 
del, dfn, em, img, ins, kbd, q, s, samp, 
small, strike, strong, sub, sup, tt, var, 
b, u, i, center, 
dl, dt, dd, ol, ul, li, 
fieldset, form, label, legend, 
table, caption, tbody, tfoot, thead, tr, th, td, 
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary, 
time, mark, audio, video { 
    margin: 0; 
    padding: 0; 
    border: 0; 
    font-size: 100%; 
    font: inherit; 
    vertical-align: baseline; 
} 
/* HTML5 display-role reset for older browsers */ 
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section { 
    display: block; 
} 
body { 
    line-height: 1; 
} 
ol, ul { 
    list-style: none; 
} 
blockquote, q { 
    quotes: none; 
} 
blockquote:before, blockquote:after, 
q:before, q:after { 
    content: ''; 
    content: none; 
} 
table { 
    border-collapse: collapse; 
    border-spacing: 0; 
} 

看到的jsfiddle:https://jsfiddle.net/ssohvr45/2/