Reputation: 5488
For some reason the button under the text fields seems to get wider than the textboxes the more I resize the browser window. Any ideas why?
SCRN :
HTML :
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
<script src="scripts/ajax.js"></script>
<link rel="stylesheet" href="css/custom.css" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<div data-role='page' id='confirmDetails' data-add-back-btn='true' data-theme='a'>
<div data-role='header' data-position='fixed'><h1>Confirm Details</h1></div>
<div class='ui-body ui-body-e'><p><strong>Please recheck your details to make sure they are correct, then press confirm.</strong></p></div>
<div data-role='content'>
<div><label>Name</label><input type='text' value='Some factor name' disabled /></div>
<div><label>VAT No</label><input id='txtFVATNo' type='text' value='121212121' placeholder='vat no' /></div>
<div><label>Email</label><input id='txtFEmail' type='email' value='[email protected]' autocapitalize='none' placeholder='email address' /></div>
<div><label>Name</label><input id='txtFContactName' type='text' value='Muhammad' autocapitalize='words' placeholder='contact name' /></div>
<input type='submit' id='btnConfirm' value='Everything Correct - Confirm!' data-icon='check' data-iconpos='right' /></div>
</div>
</body>
</html>
EDIT:
Setting custom css for the #confirmButton to width 97% didnt work,
This didnt work either :
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
Here is the CSS for the button :
webkit-appearance: none;
-webkit-box-align: center;
-webkit-rtl-ordering: logical;
-webkit-user-select: text;
background-attachment: scroll;
background-clip: border-box;
background-color: rgba(255, 255, 255, 0);
background-image: none;
background-origin: padding-box;
border-bottom-color: black;
border-bottom-style: none;
border-bottom-width: 0px;
border-left-color: black;
border-left-style: none;
border-left-width: 0px;
border-right-color: black;
border-right-style: none;
border-right-width: 0px;
border-top-color: black;
border-top-style: none;
border-top-width: 0px;
box-sizing: border-box;
color: black;
cursor: pointer;
display: block;
filter: none;
font-family: Helvetica, Arial, sans-serif;
font-size: 1px;
font-style: normal;
font-variant: normal;
font-weight: normal;
height: 39px;
left: 0px;
letter-spacing: normal;
line-height: normal;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
opacity: 0.10000000149011612;
padding-bottom: 1px;
padding-left: 6px;
padding-right: 6px;
padding-top: 1px;
position: absolute;
text-align: center;
text-decoration: none;
text-indent: -9999px;
text-shadow: none;
text-transform: none;
top: 0px;
white-space: pre;
width: 391px;
word-spacing: 0px;
z-index: 2;
SCREENSHOT (for my head hurts) :
SOLUTION :
This works with latest 1.1.0 release.
input.ui-input-text, textarea.ui-input-text {
width: 100% !important; /* used to be width: 97%; */
/* add box sizing so padding is included in width */
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
Upvotes: 0
Views: 2495
Reputation: 3505
If you put it in a table you can apply the
http://www.w3.org/TR/REC-CSS2/tables.html#width-layout
property -> <table style="table-layout:fixed">
That will prevent any from streching past their set widths! that includes jQuery buttons inside them ;)
Upvotes: 0
Reputation: 1312
For older versions you can postprocess the width via javascript. But you have to change the padding to 'px' to subtract it from $('.ui-content').outerWidth();
Upvotes: 0
Reputation: 37665
In jquery.mobile-1.1.0.min.css
there is a conflicting combination of widths, padding and margin between input.ui-input-text, textarea.ui-input-text
and .ui-btn
, which is why they appear differently.
Change the css to the following:
.ui-btn {
....
margin: 0.5em 0; /* used to be margin: 0.5em 5px; */
....
}
input.ui-input-text, textarea.ui-input-text {
....
width: 100% !important; /* used to be width: 97%; */
/* add box sizing so padding is included in width */
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
....
}
This should resolve your issues: http://jsfiddle.net/RVgnC/5/
Upvotes: 1
Reputation: 852
Do not use "width:100%" if your CSS button have "padding-left / padding-right",
please try change to "width:97%" or 95% or else.
Upvotes: 0