konto usunięte

Temat: Problem z wyrównaniem LABEL w pionie do kontrolek typu...

Cześć!

Mam dziwny problem, którego nie mogę rozwiązać sam, a sieć jakoś też nie grzeszy nadmiarem tematów w tym względzie.
Otóż tworzę aplikację z użyciem Yii framework. Ma on całkiem przyjemnie zrobiony arkusz stylów do formularzy, które się generuje(nie o to tu chodzi),
ale próbowałem go zmodyfikować tak by LABEL była na środku wysokości kontrolki której towarzyszy, jednak za żadne skarby nie mogę tego osiągnąć.
Jeśli tekst jest jako tekst, a nie jako label to jest ok, jednak z wielu względów chcę używać label. Wklejam CSS'a dotyczącego formularzy.

/**
* CSS styles for forms generated by yiic.
*
* The styles can be applied to the following form structure:
*
* <div class="form">
* <div class="row">
* <label for="inputid">xyz</label>
* <input name="inputid" id="inputid" type="text" />
* <p class="hint">hint text</p>
* </div>
* <div class="row">
* <label for="inputid">xyz</label>
* <input name="inputid" id="inputid" type="text" />
* <p class="hint">hint text</p>
* </div>
* <div class="row buttons">
* <label for="inputid">xyz</label>
* <input name="inputid" id="inputid" type="text" />
* <p class="hint">hint text</p>
* </div>
* </div>
*
* The above code will render the labels and input fields in separate lines.
* In order to render them in the same line, please use the "wide" form as follows,
*
* <div class="wide form">
* ......
* </div>
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @link http://www.yiiframework.com/
* @copyright Copyright © 2008-2010 Yii Software LLC
* @license http://www.yiiframework.com/license/
*/

div.form
{
}

div.form input,
div.form textarea,
div.form select
{
margin: 0.2em 0 0.5em 0;
}

div.form fieldset
{
border: 1px solid #DDD;
padding: 10px;
margin: 0 0 10px 0;
-moz-border-radius:7px;
}

div.form label
{
font-weight: bold;
font-size: 1em;
display: block;
vertical-align: middle;
}

div.form .row
{
vertical-align: middle;
margin: 5px 0;
}

div.form .hint
{
margin: 0;
padding: 0;
color: #999;
}

div.form .note
{
font-style: italic;
}

div.form span.required
{
color: red;
}

div.form div.error label,
div.form label.error,
div.form span.error
{
color: #C00;
}

div.form div.error input,
div.form div.error textarea,
div.form div.error select,
div.form input.error,
div.form textarea.error,
div.form select.error
{
background: #FEE;
border-color: #C00;
}

div.form div.success input,
div.form div.success textarea,
div.form div.success select,
div.form input.success,
div.form textarea.success,
div.form select.success
{
background: #72b42d;
border-color: #C6D880;
color: white;
}


div.form .errorSummary
{
border: 2px solid #C00;
padding: 7px 7px 12px 7px;
margin: 0 0 20px 0;
background: #FEE;
font-size: 0.9em;
}

div.form .errorMessage
{
color: red;
font-size: 0.9em;
}

div.form .errorSummary p
{
margin: 0;
padding: 5px;
}

div.form .errorSummary ul
{
margin: 0;
padding: 0 0 0 20px;
}

div.wide.form label
{
vertical-align: middle;
float: left;
margin-right: 10px;
position: relative;
text-align: right;
width: 100px;

}

div.wide.form .row
{
clear: left;
}

div.wide.form .buttons, div.wide.form .hint, div.wide.form .errorMessage
{
clear: left;
padding-left: 110px;
}


A to kod przykładowej kontrolki w formularzu:

<div class="row">
<label for="Model_nazwa" class="required">Nazwa <span class="required">*</span></label> <input name="Model[nazwa]" id="Model_nazwa" type="text" maxlength="128" /> <div id="Model_nazwa_em_" class="errorMessage" style="display:none"></div> </div>

konto usunięte

Temat: Problem z wyrównaniem LABEL w pionie do kontrolek typu...

Cześć

W ten sposób tego problemu nie rozwiążesz.
Najlepiej nadać margines górny i przesunąć nieco aby w środek z polem input było.

Jeśli natomiast chcesz zastosować vertical-align: middle; to albo zwykłe table, tr, td albo zastosować display: table; za pomocą CSS. Więcej na ten temat jest w google.
Tomasz Zdarowski

Tomasz Zdarowski Webdeveloper, Tomasz
Zdarowski WEBDIZ

Temat: Problem z wyrównaniem LABEL w pionie do kontrolek typu...

Cześć, jeśli dobrze zrozumiałem co chcesz osiągnąć to wystarczy usunąć z div.form label display:block żeby działało wyśrodkowywanie pionowe (vertical-align:middle).Tomasz Zdarowski edytował(a) ten post dnia 23.05.11 o godzinie 15:17

konto usunięte

Temat: Problem z wyrównaniem LABEL w pionie do kontrolek typu...

Tomasz Zdarowski:
Cześć, jeśli dobrze zrozumiałem co chcesz osiągnąć to wystarczy usunąć z div.form label display:block żeby działało wyśrodkowywanie pionowe (vertical-align:middle).

nie pomogło
Tomasz Zdarowski

Tomasz Zdarowski Webdeveloper, Tomasz
Zdarowski WEBDIZ

Temat: Problem z wyrównaniem LABEL w pionie do kontrolek typu...

No tak, jest jeszcze w "div.wide.form label" float:left (jak to usuniesz to powinno być ok).

Następna dyskusja:

Float right i problem pod IE7




Wyślij zaproszenie do