161

The label tag doesn't have the property 'width', so how should I control the width of a label tag?

tirenweb
  • 30,963
  • 73
  • 183
  • 303
  • 8
    Label is an inline element, it cannot have width value; in order to do this you need to put `display:block` or `float:left`. – Russell Dias May 12 '10 at 16:10

9 Answers9

212

Using CSS, of course...

label { display: block; width: 100px; }

The width attribute is deprecated, and CSS should always be used to control these kinds of presentational styles.

Josh Stodola
  • 81,538
  • 47
  • 180
  • 227
110

Using the inline-block is better because it doesn't force the remaining elements and/or controls to be drawn in a new line.

label {
  width:200px;
  display: inline-block;
}
tronman
  • 9,862
  • 10
  • 46
  • 61
MA9H
  • 1,849
  • 2
  • 16
  • 19
29

Inline elements (like SPAN, LABEL, etc.) are displayed so that their height and width are calculated by the browser based on their content. If you want to control height and width you have to change those elements' blocks.

display: block; makes the element displayed as a solid block (like DIV tags) which means that there is a line break after the element (it's not inline). Although you can use display: inline-block to fix the issue of line break, this solution does not work in IE6 because IE6 doesn't recognize inline-block. If you want it to be cross-browser compatible then look at this article: http://webjazz.blogspot.com/2008/01/getting-inline-block-working-across.html

True Soft
  • 8,675
  • 6
  • 54
  • 83
Srka
  • 363
  • 3
  • 7
4

You can definitely try this way

.col-form-label{
  display: inline-block;
  width:200px;}
2
label {
  width:200px;
  display: inline-block;
}

OR 

label {
  width:200px;
  display: inline-flex;
}

OR 

label {
  width:200px;
  display: inline-table;
}
shiny
  • 124
  • 6
0

Giving width to Label is not a proper way. you should take one div or table structure to manage this. but still if you don't want to change your whole code then you can use following code.

label {
  width:200px;
  float: left;
}
Yaxita Shah
  • 1,206
  • 1
  • 11
  • 17
  • "Giving width to Label in not a proper way" of controlling the width of a label element? Are you sure? – Oriol Aug 10 '15 at 14:06
  • Yes .. Because when we want to create some layout or specific structure then div and table properties are provided to use. Label is not meant for giving width or height .. so if we use something which is not meant to do so .. it will start creating issues in some manner. I hope i am making sense now. – Yaxita Shah Aug 10 '15 at 14:13
0

You can either give class name to all label so that all can have same width :

 .class-name {  width:200px;}

Example

.labelname{  width:200px;}

or you can simple give rest of label

label {  width:200px;  display: inline-block;}
3338_SON
  • 35
  • 1
  • 12
0
<style type="text/css">
    .princip{
        height: 190px ;
        width:190px ;
        border:  solid;
    }
    label{
        height: 190px !important;
        width:190px  !important;
        border:  solid;
        display: block;
    }
 </style>

    <div class="princip"  id="princip">
    
    
    <input id="rad1" type="radio" name="rad"/>
    
    <label class="lbl" id="lbl" for="rad1">
    
        <h1>fdgb</h1>
    <h2>sdfs</h2>
    </label>
    
    </div>
0

Using CSS

label { display: block; width: 100px; } The width attribute is deprecated, and CSS should always be used to control these kinds of presentational styles.

joyce_ann
  • 1
  • 3