Почему это не выравнивает середину или низ? - PullRequest
2 голосов
/ 12 ноября 2011

ОК, моя глупая маленькая форма входа в систему выглядит почти так, как я хочу.(По сути, это мой первый CSS-проект и первый HTML-проект с тех пор, как обновил , пытаясь обновить свои 15-летние навыки HTML.) На самом деле, я не могу понять, как получить "забытое"пароль?"ссылка для перемещения вниз, выровненная по центру или низу кнопки «Войти».Я пытался переместить display: inline; и vertical-align: middle; на все виды различных селекторов, и ни один из них не работает!Я даже пытался установить высоту якоря и / или элементов <li>.Я не понимаю, в чем дело!Любая помощь очень ценится!

Вот мой код:

form.login {
    margin: 10px 10px 20px 20px;
    padding: 0 0 0 0;
}
form.login fieldset{
    margin: 0 0 0 0;
    padding: 2px 2px 2px 2px;
    border:2px solid;
    border-radius: 5px;
    width: 348px;
    height: 90px;
}
form.login fieldset legend {
    font-weight: bold;
    font-size: 1.2em;
    margin-left: 10px;
}
form.login fieldset ul {
    margin: 0;
    padding:0;
}
form.login fieldset fieldset {
    border: 0;
    width: 100%;
    height: 40%;
    display: inline;
    vertical-align: middle;
}
form.login fieldset fieldset li{
    float: left;
    list-style: none;
    width: 165px;
    margin: 0 4px 0 4px;
}
form.login input {
    width: 165px;
}
form.login label {
    display: none;
}
form.login a:link, 
form.login a:visited {
    color: black;
    font-size: 0.8em;
}
form.login a:hover {
    color: blue;
}
form.login a:active {
    color: blue;
}
form.login fieldset ul fieldset li button#submitLogin {
    float: right;
}

и HTML:

<html>

<head>
<link rel="stylesheet" type="text/css" href="formstyle.css" />
</head>

<body>
 <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" class="login">
        <fieldset>
        <legend>Login</legend>
        <ul>
            <fieldset>
                <li>
                    <label for="email">Email Address</label>
                </li>
                <li>
                    <input id="email" type="text" name="email">
                </li>
                <li>
                    <label for="password">Password</label>
                </li>
                <li>
                    <input id="password" type="password" name="password">
                </li>
            </fieldset>
            <fieldset>
                <li>
                    <a href="resetpass.php">Forgot Password?</a>
                </li>
                <li>
                     <button id="submitLogin" value="submit" name="submitLogin" type="submit">Login</button>
                </li>
            </fieldset>
        </ul>
        </fieldset>
 </form>
</body>

</html>

РЕДАКТИРОВАТЬ: Вот скриншот того, чтоэто похоже на код выше.

Ответы [ 4 ]

1 голос
/ 12 ноября 2011

Попробуйте изменить:

<li class="middle">
     <a href="resetpass.php">Forgot Password?</a>
</li>
<li class="middle">
     <button id="submitLogin" value="submit" name="submitLogin" type="submit">Login</button>
</li>

и добавьте это к своему CSS:

.middle {
    height: 22px;
    line-height: 22px;
}

Это явно дает ему set-height, а затем через свойство line-height указывает центрировать текст и формировать объекты в li по вертикали.

0 голосов
/ 13 ноября 2011

Я переработал вашу разметку, чтобы удалить fieldset s и сделать стиль более согласованным.То, что я делаю здесь, это создание li всей половины width и height из UL.Таким образом, если вы хотите изменить fieldset height и / или width, вам просто нужно изменить одну точку и, возможно, настроить другие стили.

Я также сжал и удалилнекоторые другие ненужные объявления свойств (padding: 0 0 0 0 до padding: 0).Дайте мне знать, если у вас есть какие-либо вопросы.

РЕДАКТИРОВАТЬ

Я работал над этим, чтобы сделать его более согласованным между Chrome и Firefox.

И яна самом деле думаю, что вам лучше поставить высоту для элементов li:

http://jsfiddle.net/QRNBg/13/

Попробуйте посмотреть выше и запустите, комментируя display: none в CSS .hide объявление класса.

CSS

form.login {
    margin: 10px 10px 20px 20px;
    padding: 0;
    font-size: 1.2em;
}
form.login fieldset {
    margin: 0;
    padding: 5px;
    border: 2px solid;
    border-radius: 9px;
    display: inline-block;
}
form.login fieldset legend {
    font-weight: bold;
    font-size: 1.2em;
    margin-left: 10px;
}
form.login fieldset ul {
    margin: 0;
    padding: 0;
    height: 90px;
    width: 348px;
}
form.login fieldset ul li {
    width: 50%;
    height: 45%;
    float: left;
    list-style: none;
    margin: 0;
    padding: 0;
    text-align: left;
}
form.login input {
    border: 1px solid #aaa;
}
form.login input,
form.login li.common a {
    width: 93%;
    height: 80%;
    display: block;
    margin: 5px;
    font-size: 1em;
}
form.login .hide {
    display: none;
}
form.login a:link, 
form.login a:visited {
    color: black;
    font-size: 0.8em;
}
form.login a:hover,
form.login a:active {
    color: blue;
}
form.login li.common {
    text-align: left;
    display: table-cell;
    line-height: 2.5em;
}
#submitLogin {
    text-align: right;
    margin: 0 5px 0 -5px;
}
#submitLogin button {
    padding: 5px 8px;
}

HTML

<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>" class="login">
    <fieldset>
    <legend>Login</legend>
    <ul>
        <li class="hide">
            <label for="email">Email Address</label>
        </li>
        <li>
            <input id="email" type="text" name="email">
        </li>
        <li class="hide">
            <label for="password">Password</label>
        </li>
        <li>
            <input id="password" type="password" name="password">
        </li>
        <li class="common">
            <a href="resetpass.php">Forgot Password?</a>
        </li>
        <li id="submitLogin" class="common">
            <button value="submit" name="submitLogin" type="submit">Login</button>
        </li>
    </ul>
    </fieldset>
</form>

http://jsfiddle.net/QRNBg/11/

0 голосов
/ 12 ноября 2011

Вот быстрое решение.http://jsfiddle.net/xNAnz/

Я сместил li 10px сверху.

0 голосов
/ 12 ноября 2011

Вы хотите, чтобы это было рядом с кнопкой входа в систему, но вы определяете это в теге 'li' перед кнопкой входа в систему?Вы пытались поместить этот якорь в том же «ли»?использование 'таблицы' и помещение их в один и тот же 'tr' наверняка сработает.

...