У меня есть простая таблица HTML с 2 столбцами, содержащими текстовые поля и заголовки для «Имя», «Комментарии» и «Электронная почта».
Я ищу лучшую стратегию для стилизации этого фрагмента HTML, если он будет отображаться на нескольких страницах, требующих разных измерений на каждой странице. Я недавно много читал о CSS, но пока не наткнулся на достаточно информации, которая действительно позволяет мне узнать, как лучше всего разработать такой .css.
Например, я мог бы показывать форму комментариев с шириной 50% на странице «комментарии», но только с боковой панелью в 20% в некоторых дополнительных местах на сайте.
В основном меня интересует стилизация ширины блоков, но, конечно, тот же подход применяется к тексту. Например, поле имени не должно быть таким же широким, как поле электронной почты. Я думаю, фиксированная ширина лучше, чем проценты.
Очевидно, есть много способов его стилизовать. Предположим, у меня уже есть 1 мастер-файл CSS.
1) Поместите процентную ширину в теги input
, и тогда внешний div будет равен 100% ширины для любой панели, в которой он содержится. Это не требует конкретной страницы CSS, но мне не нравится идея процентов внутри td
теги, плюс я не могу легко изменить высоту textarea
.
2) создавать стили для #Name, #Comments и #Email на каждой отдельной странице в качестве дополнительных стилей в <head><style>
*
3) стиль, основанный на #Name, #Comments и #Email в css-файле определенной страницы. Являются ли файлы для конкретной страницы хорошими или плохими? Я даже не уверен, что мне нравится стиль, основанный на идентификаторах, потому что они генерируются динамически, и если по какой-то причине они должны были измениться, мне придется обновлять css везде.
4) стиль, основанный на #Name, #Comments и #Email, но квалифицирует их селектором потомков, характерным для каждой страницы. Так что у меня будет .faqPage #Name
, когда это появится на странице часто задаваемых вопросов. Очевидно, они идут в моем мастер-файле CSS.
5) создать имена классов для 'emailField ,
nameField and
commentsField` [опции 2,3,4 повторяются для этой опции]
6) создать имена классов для 'shortField ,
fullWidthField and
textInputField` [опции 2,3,4 повторяются для этой опции]
7) вы поняли:)
8) что-то еще
Я просто немного перегружен всеми вариантами. Как мне решить, какой путь лучше? Конкретная цель состоит в том, чтобы иметь возможность стилизовать один и тот же HTML на нескольких страницах (очевидно, в этом и заключается смысл CSS - но это влияет на то, какие опции я могу использовать).
<div id="pnlSubmitComments">
<table class="fieldTable">
<tr>
<td align="right">
<label for="Comments">Name:</label>
</td>
<td>
<input id="Name" name="Name" type="text" value="" />
</td>
</tr>
<tr>
<td align="right">
<label for="Comments">Email:</label>
</td>
<td>
<input id="Email" name="Email" type="text" value="" />
</td>
</tr>
<tr>
<td align="right" valign="top">
<label for="Comments">Questions:</label>
</td>
<td>
<textarea id="Comments" name="Comments">
</textarea>
</td>
</tr>
<tr>
<td>
</td>
<td>
<input id="btnSubmitComments" name="btnSubmitComments" type="submit" value="Submit Questions" />
</td>
</tr>
</table>
</div>
- PS. Более конкретные имена полей, такие как
CommentsName
, просто проще поместить Name
для удобства чтения.