如何在CSS中存在填充时使TextArea的宽度为100%而不溢出?

17 浏览
0 Comments

如何在CSS中存在填充时使TextArea的宽度为100%而不溢出?

我有下面的CSS和HTML片段正在被渲染。

textarea
{
  border:1px solid #999999;
  width:100%;
  margin:5px 0;
  padding:3px;
}

  
  

问题是,文本区域的宽度比父元素宽8px(2px的边框 + 6px的内边距)多。有没有办法继续使用边框和内边距,但将

.container { 
  width: 400px; 
  border: 3px solid #f7c; 
}
.textareaContainer {
    display: block;
    border: 3px solid #38c;
    padding: 10px;
}
textarea { 
  width: 100%; 
  margin: 0; 
  padding: 0; 
  border-width: 0; 
}

其中,.container类设置了容器的宽度和边框样式。.textareaContainer类设置了文本区域的边框和填充样式,并将其显示属性设置为块级元素。textarea标签设置了文本区域的宽度为100%,并且取消了边框和填充样式。

通过使用

这种方法可以解决在使用填充时文本区域超出宽度的问题,同时还可以实现自动适应宽度和添加样式的需求。

0
0 Comments

问题的原因是当在CSS中设置了padding时,TextArea无法实现100%宽度而不溢出。解决方法是使用CSS的box-sizing属性,并将其设置为border-box。这个属性是为了解决元素宽度计算的问题,使得元素的宽度包括了padding和border的大小。

具体的解决方法是在CSS中添加以下代码:

.boxsizingBorder {
    -webkit-box-sizing: border-box;
       -moz-box-sizing: border-box;
            box-sizing: border-box;
}

这段代码可以将TextArea的宽度设置为100%,并且不会溢出。同时需要注意的是,还需要将width属性设置为100%。需要注意的是,这种解决方法不适用于较旧版本的IE浏览器。在IE浏览器中,需要单独编写一段代码来实现相同的效果。

此外,还需要注意的是,对于TextArea的高度,需要通过CSS来设置,因为在经过上述设置后,rows属性将失效。

可以将这段代码应用于TextArea本身,也可以将其应用于包围TextArea的div元素。

,解决TextArea在设置了padding时无法实现100%宽度的问题,可以使用CSS的box-sizing属性,并将其设置为border-box。这样可以确保元素的宽度包括了padding和border的大小。需要注意的是,这种解决方法不适用于较旧版本的IE浏览器,需要单独编写一段代码来实现相同的效果。此外,还需要通过CSS来设置TextArea的高度,因为在经过上述设置后,rows属性将失效。

0
0 Comments

问题原因:在CSS中,当为TextArea设置了padding属性后,如果想让其宽度100%,就会出现溢出的情况。

解决方法:添加一个包裹的div元素,将边框和padding应用于该元素,然后将宽度为100%的textarea放置在其中。

代码如下:

CSS样式如下:

textarea {
  width: 100%;
}
.textwrapper {
  border: 1px solid #999999;
  margin: 5px 0;
  padding: 3px;
}

注意:在.textwrapper类名前添加"."。

此外,还有一个问题是,当使用此方法时,textarea的滚动条会如何显示?在Chrome浏览器中,当聚焦到textarea元素时,它会自动高亮显示,并且如果为div包装器创建了padding,这个padding将可见,并且会出现两个边框,一个是高亮显示的边框,另一个是.textwrapper的边框。

另外,还有一个问题是,测试此代码时发现,必须使用</textarea>代替<textarea .... />才能正常工作。

0