Reputation: 25
The input-field width is too short when resized for mobile. (viewing on iOS)
I looked at the CSS file for individual Materialize components and tried to adjust the % for @media in a custom css file and it didn't seem to change anything. This is what I did to customize the container class for mobile. I also tried to hard code the input-field in pixels by chaining multiple classes in a custom css file, but then there was the problem of centering the form.
Targeting the s12 in this div:
<div class="input-field col s12 m6 l6">
custom.scss
.input-field.col.s12 { width: 200px; }
From Materialize form components:
@media only screen and (max-width: 600px) {
.input-field .prefix ~ input {
width: 80%;
width: calc(100% - 3rem); } }
I set width to 100% from previous code block.
@media only screen and (max-width: 600px) {
.input-field .prefix ~ input {
width: 100%; } }
I attached a picture of what it looks like right now.
Thanks for any suggestions on how to fix this.
Added the codepen here: https://codepen.io/prismcolour/pen/zdWEKo
The form looks slightly better resized in codepen than on mobile. But still problematic because I would like the input-field width longer. Please see both codepen and picture as reference.
Upvotes: 2
Views: 9096
Reputation: 7309
The problem is you are giving too many row
div. Which adds gutter of 15px
on left and right.
Just use one container
div and a row
div. That will solve your problem.
<div class="container">
<div class="row">
<form class="col s12">
<div class="input-field col s12 l6">
<input id="first_name" type="text" class="validate">
<label for="first_name">First Name</label>
</div>
<div class="input-field col s12 l6">
<input id="last_name" type="text" class="validate">
<label for="last_name">Last Name</label>
</div>
<div class="input-field col s12">
<input id="email" type="email" class="validate">
<label for="email">Email</label>
</div>
<div class="input-field col s12">
<textarea id="textarea1" class="materialize-textarea">
</textarea>
<label for="textarea1">Comments</label>
</div>
<a class="waves-effect waves-light btn">Submit</a>
</form>
</div>
</div>
Upvotes: 4