我有一系列div
框后跟一个textarea
同一个类采用相同的样式,但我注意到div
似乎自动填充水平宽度父母虽然textarea
没有。给textarea
width:100%
解决了问题,但是如果我提供共享课margin-left:80px
,则textarea
超过父,而div
框不会。
我只是想知道为什么会出现这种情况,以及是否可以使用textarea
进行复制。我到目前为止最干净的解决方案是给出textarea
width:calc(100%-80px)
,但更喜欢更“自然”的解决方案。
以下是一些示例代码: -
HTML
<body>
<div class="container">
<div class="box">
DIV
</div>
<div class="box">
DIV
</div>
<form>
<textarea class="box">TEXTAREA</textarea>
</form>
</div>
</body>
CSS
.container {
background: #bbb;
padding: 30px;
box-sizing: border-box;
}
.box {
height: 80px;
background: #888;
box-sizing: border-box;
margin: 0 0 50px 80px
}
textarea {
width: calc(100% - 80px); // CLEANISH SOLUTION
}
这是一个JSFiddle:https://jsfiddle.net/tndm2eqz/1/
答案 0 :(得分:2)
它确实应用了CSS,但<form>
介于两者之间,因此width
不会被继承:https://jsfiddle.net/tndm2eqz/3/
.container {
background: #bbb;
padding: 30px;
box-sizing: border-box;
}
.box {
height: 80px;
background: #888;
box-sizing: border-box;
margin: 0 0 50px 80px;
}
form {
margin: 0 0 50px 80px;
padding: 0;
}
textarea.box {
width: 100%;
display: block;
margin:0;
box-sizing: border-box;
}
<body>
<div class="container">
<div class="box">
DIV
</div>
<div class="box">
DIV
</div>
<form>
<textarea class="box">TEXTAREA</textarea>
</form>
</div>
</body>
答案 1 :(得分:0)
textarea不是display:block
你必须将display:block
和width:100%;
添加到你的textarea所以,为什么不把textarea放在.box div中并使textarea宽度:100 %与块。例如
.container {
background: #bbb;
padding: 30px;
box-sizing: border-box;
}
.box,.box textarea {
height: 80px;
background: #888;
box-sizing: border-box;
}
.box{
margin: 0 0 50px 80px;
}
.box textarea {
display: block;
width: 100%;
}
<div class="container">
<div class="box"> DIV </div>
<div class="box"> DIV </div>
<form>
<div class="box">
<textarea>TEXTAREA</textarea>
</div>
</form>
</div>
答案 2 :(得分:0)
与div
不同,block
显示类型为textarea
。如果您希望textarea
的行为为div
,请添加以下内容:
textarea{
display: block;
}
不要忘记textarea
的边框和阴影。
答案 3 :(得分:0)
.container {
background: #bbb;
padding: 30px;
box-sizing: border-box;
width:100%;
margin:0px;
}
.box {
height: 80px;
background: #888;
box-sizing: border-box;
margin: 0 0 50px 0;
width:100%;
}
&#13;
<body>
<div class="container">
<div class="box">
DIV
</div>
<div class="box">
DIV
</div>
<form>
<textarea class="box" rows="10">TEXTAREA</textarea>
</form>
</div>
</body>
&#13;