Input border CSS
css, html
Solution
You need to use the `box-sizing` to `border-box` to add `width` as well, as `border` too takes up its own width:
* {
box-sizing: border-box;
}
#wrapper {
width: 170px;
}
textarea {
border-color: #eee;
border-width: 1px;
}
label, textarea, input {
width: 100%;
display: block;
}
input {
border-style: solid;
border-width: 1px;
}
<div id="wrapper">
<form>
<label for="comments">Comments</label>
<textarea name="comments" rows="5"></textarea>
<label for="date">Date</label>
<input type="text" name="date">
<label for="time">Time</label>
<input type="text" name="time">
<label for="longitude">Longitude</label>
<input type="text" name="logitude">
<label for="latitude">Latitude</label>
<input type="text" name="latitude">
</form>
</div>
Explanation
The CSS box model, by default is `content-width` defines the total dimension as:
width = contentWidth + paddingLeftWidth + borderLeftWidth
height = contentHeight + paddingLeftHeight + borderLeftHeight
(source: binvisions.com)
Problem
I am having trouble with my input borders. When I change the border width property, it changes the width of the entire input. However, I want the input's width to be 100%. Here's my code: CSS ``` #wrapper { width: 170px; } textarea { border-color: #eee; border-width: 1px; } label, textarea, input { width: 100%; display: block; } input { border-style: solid; border-width: 1px; } ``` ``` <div id="wrapper"> <form> <label for="comments">Comments</label> <textarea name="comments" rows="5"></textarea> <label for="date">Date</label> <input type="text" name="date"> <label for="time">Time</label> <input type="text" name="time"> <label for="longitude">Longitude</label> <input type="text" name="logitude"> <label for="latitude">Latitude</label> <input type="text" name="latitude"> </form> <div> ``` Notice how the inputs stretch almost as far as the text area, but not quite. Thanks!