|
From: Mike Harrison on 29 Jun 2008 10:57 Hi, I have some simple HTML like this: <div id="container" style="width:100%;"> <input type="text" > <input type="button" style="float:right;" value="Click here..."> </div> I want the button to remain the normal size and be right-aligned, and the edit box to automatically take up the remaining width of the container. I suspect I'm missing something obvious, but how can I do this with CSS? Thanks in advance.
From: Jukka K. Korpela on 29 Jun 2008 12:07 Scripsit Mike Harrison: > Hi, I have some simple HTML like this: Please post a URL, not a snippet of code. > <div id="container" style="width:100%;"> > <input type="text" > <input type="button" style="float:right;" > value="Click here..."> > </div> "Click here..." is clueless. Just an example, maybe, but it's a _bad_ example, and people actually use such button texts, which are (literally) clueless, i.e. give no clue of the meaning and effect of the button. A text input field without a label is clueless, too. It is not obvious at all how the text field and the button relate to each other. If they do, why not use <fieldset> with a descriptive <legend>? Then you have a _different_ styling problem, and perhaps one that is worth addressing. Besides, such a button is normally quite pointless, since <input type="button"> only works (if it works at all) via scripting, and there isn't any scripting in your snippet. So how about starting a from a good and real example, presented by providing the URL? > I want the button to remain the normal size and be right-aligned, and > the edit box to automatically take up the remaining width of the > container. Really? Even if the canvas is ten meters wide? What happens when CSS is off? The width will be then set by browser defaults, which are rather small (typically, about 20 characters). So maybe you should first choose a suitable size="..." value; it's inconvenient guesswork, but it's better to make an intelligent guess that to let browsers default. > I suspect I'm missing something obvious, We obviously miss the URL. > but how can I do this with CSS? We miss the definition of what "this" consists of. To begin with, when the button element appears after the text input element, it will appear below it, though right-aligned. If you want them to appear on the same line visually, you need to put the button element before the text input element. You haven't actually made _any_ attempt to set the text input field width, in HTML or in CSS, in your snipped. The 100% width is set for the container element, for which it has no effect, since the default rendering is to make a <div> element as wide as possible. There does not seem to be any direct CSS way of achieving what you want (except using table-related properties that are not supported by IE), but it's trivial in HTML, with one simple piece of CSS: <table width="100%"> <tr><td width="100%"><input type="text" style="width:100%"></td> <td><input type="button" value="Click here..."></td></tr> </table> However, what would be the point? If the field needs as much space as possible, why waste space by putting a button on its right? And why not make it a textarea if it may need a lot of space? -- Jukka K. Korpela ("Yucca") http://www.cs.tut.fi/~jkorpela/
From: Harlan Messinger on 29 Jun 2008 13:00 Jukka K. Korpela wrote: > Scripsit Mike Harrison: > >> Hi, I have some simple HTML like this: > > Please post a URL, not a snippet of code. One doesn't need a URL of a fully formed page to ask how to do something. His illustrative snippet is short and clear. I'm awarding you one cluelessness point of your own. >> <div id="container" style="width:100%;"> >> <input type="text" > <input type="button" style="float:right;" >> value="Click here..."> >> </div> > > "Click here..." is clueless. Just an example, maybe, but it's a _bad_ > example, and people actually use such button texts, which are > (literally) clueless, i.e. give no clue of the meaning and effect of the > button. Another cluelessness point for Jukka, who doesn't understand it's perfectly OK for an example to be generic and stripped-down, and that all that's required of it is that it be sufficiently illustrative for the question being asked. > A text input field without a label is clueless, too. A third cluelessness point for Jukka, to whom it doesn't occur that the OP almost certainly intends to have a label in the real page but just didn't bother included it in the example, where it wasn't necessary for the purposes of his question. > It is not obvious at all how the text field and the button relate to > each other. If they do, why not use <fieldset> with a descriptive > <legend>? Then you have a _different_ styling problem, and perhaps one > that is worth addressing. It's an example. The clarity of their working relationship in the final product is extraneous here and in fact might even detract from the example's ability to illustrate the OP's question. A fourth cluelessness point for Jukka. > Besides, such a button is normally quite pointless, since <input > type="button"> only works (if it works at all) via scripting, and there > isn't any scripting in your snippet. Cluelessness point number five. Jukka still hasn't figured out that the example isn't intended to be the whole page. > So how about starting a from a good and real example, presented by > providing the URL? Probably because there isn't anything else on the page that would have anything to do with getting an answer to the OP's technical question. >> I want the button to remain the normal size and be right-aligned, and >> the edit box to automatically take up the remaining width of the >> container. > > Really? Even if the canvas is ten meters wide? If 1em = 20cm on that particular canvas, why not? Cluelessness point number six. > What happens when CSS is off? The width will be then set by browser > defaults, which are rather small (typically, about 20 characters). So > maybe you should first choose a suitable size="..." value; it's > inconvenient guesswork, but it's better to make an intelligent guess > that to let browsers default. Wow, one helpfulness point. > >> I suspect I'm missing something obvious, > > We obviously miss the URL. > >> but how can I do this with CSS? > > We miss the definition of what "this" consists of. Attention deficit disorder acting up? Even if you lose track of pronominal antecedents that easily, you can always go back and reread. > To begin with, when the button element appears after the text input > element, it will appear below it, though right-aligned. If you want them > to appear on the same line visually, you need to put the button element > before the text input element. > > You haven't actually made _any_ attempt to set the text input field > width, in HTML or in CSS, in your snipped. The 100% width is set for the > container element, for which it has no effect, since the default > rendering is to make a <div> element as wide as possible. > > There does not seem to be any direct CSS way of achieving what you want > (except using table-related properties that are not supported by IE), > but it's trivial in HTML, with one simple piece of CSS: Two more helpfulness points, bringing the total to three. > <table width="100%"> > <tr><td width="100%"><input type="text" style="width:100%"></td> > <td><input type="button" value="Click here..."></td></tr> > </table> How dare you provide an example without building it into a fully functional, cluelessness-free page with a URL! What a hypocrite. For this I'm awarding two more cluelessness points. > > However, what would be the point? If the field needs as much space as > possible, why waste space by putting a button on its right? And why not > make it a textarea if it may need a lot of space? > One more helpfulness point. Final tally: 8 cluelessness points, 4 helpfulness points. Final cluelessness/helpfulness (CH) quotient for the posting: 200%.
From: Ben C on 29 Jun 2008 13:37 On 2008-06-29, Jukka K. Korpela <jkorpela(a)cs.tut.fi> wrote: > Scripsit Mike Harrison: [...] >> <div id="container" style="width:100%;"> >> <input type="text" > <input type="button" style="float:right;" >> value="Click here..."> >> </div> > > "Click here..." is clueless. Just an example, maybe, but it's a _bad_ > example, and people actually use such button texts, which are > (literally) clueless, i.e. give no clue of the meaning and effect of the > button. I read somewhere about a survey of which button/link texts people were most likely to click on. "Click here!" resulted in the most clicks because users have an attention span of four seconds, wish to remain clueless, and tend to just obey direct commands. Things like "more information", "read more", etc. were clicked on the least because they made the whole thing seem too much like hard work. [...] > To begin with, when the button element appears after the text input > element, it will appear below it, though right-aligned. If you want them > to appear on the same line visually, you need to put the button element > before the text input element. Yes, although this is actually a bug shared by Firefox 2 and IE. It shouldn't be necessary to put the float first. > You haven't actually made _any_ attempt to set the text input field > width, in HTML or in CSS, in your snipped. The 100% width is set for the > container element, for which it has no effect, since the default > rendering is to make a <div> element as wide as possible. > > There does not seem to be any direct CSS way of achieving what you want > (except using table-related properties that are not supported by IE), > but it's trivial in HTML, with one simple piece of CSS: There is a way, by putting the text input in a different block formatting context. ..foo { display: block; overflow: hidden; /* to make it a BFC */ } input[type="text"] { width: 100%; } input[type="button"] { float: right; } .... <input type="button" value="Click here"> <span class="foo"> <input type="text"> </span> Caveat: the spec says browsers can just put .foo below the button, rather than beside it, if they want.
From: Jukka K. Korpela on 29 Jun 2008 14:43 Scripsit Harlan Messinger: > Final cluelessness/helpfulness (CH) quotient for > the posting: 200%. No, your posting was completely unhelpful and stupid. You don't have anything useful to say, do you, but you apparently need to keep your fingers warm. How about using just Notepad for the exercise next time? -- Jukka K. Korpela ("Yucca") http://www.cs.tut.fi/~jkorpela/
|
Next
|
Last
Pages: 1 2 3 Prev: Guily et Briand Next: Trying to persuade CSS images to line up horizontally |