Я пытаюсь настроить внешний вид веб-элемента управления входом, но у меня довольно много проблем. Насколько я понимаю, я все настроил правильно, но управление почему-то все равно отображается некорректно:
а) Ширина двух элементов управления TextBox (с идентификаторами UserName и Password) должна быть равна 70% ширины таблицы, но это не так, хотя я Мы установили их атрибуты ширины. Любая идея, почему это так?
b) Если в ячейках таблицы, содержащих элементы управления lblPassword и lblPassword, для свойства text-align установлено значение center, то lblPassword и lblPassword переполняются. Это почему?
<div id="loginbox">
<asp:Login ID="Login1" runat="server" Width="100%" FailureAction="RedirectToLoginPage"
RememberMeSet="false">
<LayoutTemplate>
<table>
<tr>
<td style="padding:6px;text-align:center;">
<asp:Label ID="lblUserName" Width="30%" runat="server" Text="UserName "></asp:Label>
</td>
<td>
<asp:TextBox ID="UserName" Width="70%" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td style="padding:6px;text-align:center;" >
<asp:Label ID="lblPassword" Width="30%" runat="server" Text="Password "></asp:Label>
</td>
<td>
<asp:TextBox ID="Password" Width="70%" runat="server"></asp:TextBox>
</td>
</tr>
</table>
</LayoutTemplate>
</asp:Login>
#loginbox
{
position: absolute;
top: 16px;
right: 30px;
width: 180px;
height: 80px;
padding: 2px 2px 2px 2px;
font-size: 9px;
margin:0px;
}
очень признателен
РЕДАКТИРОВАТЬ:
Этот код сообщает браузеру, что диапазон должен быть на 70% меньше, чем TD. Единственный элемент, сообщающий TD, какая ширина должна быть, — это span, который должен быть на 70% меньше, чем TD. Таким образом, TD просто использует текст внутри диапазона, чтобы указать, насколько большим он должен быть.
Тогда это поведение отличается от моего примера с текстовыми полями, поскольку, насколько я понимаю ваш аргумент, в приведенном выше случае элемент span (т. е. текст внутри span) отображался с использованием ширины по умолчанию, в то время как TD адаптировал свою ширину на 70% больше чем ширина диапазона по умолчанию?! Но в случае элементов управления TextBox ширина, используемая для элементов управления TextBox, не была их шириной по умолчанию D, но вместо этого их ширина также была уменьшена (назовем это уменьшенной шириной TextBox W), поэтому TD не был на 70% больше, чем D, но вместо этого TD был на 70% больше, чем W (где W ‹ D)?! Но как браузер придумал ширину W?
Теперь TD справа хочет быть равным 70% ширины строки (TR), которая равна ширине TABLE. В этом случае ТД слева определяет конечный размер таблицы, так как ее содержимое должно составлять 30% ширины таблицы.
Почему вы говорите, что элемент слева определяет размер таблицы? Разве левый и правый TD не определяют окончательный размер стола?
спасибо приятель
ВТОРОЕ РЕДАКТИРОВАНИЕ:
а) Я понимаю, что две ячейки должны иметь размеры относительно друг друга, но я не уверен, что понимаю, как 55px/30%*70% дает нам правильный результат? Во всяком случае, формула не должна быть 55 * 100% / 30% (здесь 55px представляет 30% ширины правой ячейки) или 55 * 100% / 70% (здесь 55px представляет 70% ширины левой ячейки)?!
б) Что, если бы элементы span в этих двух ячейках имели разную ширину? Как тогда браузер вычислит ширину двух ячеек?
в) Я предполагаю, что если бы у таблицы была указана ширина, то ширины двух ячеек были бы не относительно друг друга, а относительно ширины таблицы?
Спасибо, приятель
ТРЕТЬЕ РЕДАКТИРОВАНИЕ:
A) Насколько я понимаю ваше объяснение, браузер вычисляет ширину двух ячеек следующим образом:
Левая ячейка имеет ширину, установленную на 30% от некоторого значения, и формула 55px * 100% / 30% = 183px* говорит нам, что ширина левой ячейки (то есть 55px) составляет 30% от 183px.
Это также означает, что правая ячейка имеет ширину, равную 70% от 183 пикселей, что составляет 183 * 70% / 100% = 124 пикселей. Таким образом, ширина левой и правой колонок составляет 30% от 183 пикселей и 70% от 183 пикселей соответственно.
B) Но я думал, что термин, который вы использовали в своем объяснении --> "ширины левой и правой ячеек должны быть относительно друг друга" ‹-- означает, что браузер должен вычислять ширину одним из следующих двух способов:
а) ширина левой ячейки должна составлять 30% от ширины правой ячейки. Поскольку левая ячейка имеет ширину 55 пикселей, где 55 пикселей представляют 30% ширины правой ячейки, тогда ширина правой ячейки будет 55 пикселей * 100% / 30% = 183 пикселей.
OR
б) ширина правой ячейки должна составлять 70% от ширины левой ячейки. Поскольку правая ячейка имеет ширину 55 пикселей, где 55 пикселей представляют 70% ширины левой ячейки, тогда ширина левой ячейки будет 55 пикселей * 100% / 70% = 78 пикселей.