Я изучаю отзывчивый дизайн веб-страниц. Во время обучения я создал основные разделы страницы, и он выглядит отлично, но элементы веб-формы не отвечают должным образом на изменение размера браузера. Вот код, я написал:Отзывчивый дизайн элементов формы
<!doctype html>
<html>
<head>
<title>Term</title>
<link rel="stylesheet" href="reset.css" type="text/css"/>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<style>
body {
font-size:1em;
text-align: center;
}
#header {
height: 5em;
background:#e2ebc3;
max-width:1300px;
}
#mainContent {
width: 69%;
max-width:900px;
min-width:300px;
float: left;
background:#F2F5F4;
position: relative;
}
#sideContentWrapper {
max-width:400px;
min-width:150px;
width: 30%;
float: left;
margin-right:0.5em;
}
#sideContent {
margin-left: 1em;
min-height: 20em;
background:#F4F2F5;
}
label {
float: left;
width: 6em;
text-align: left;
}
#frmterm {
padding: 2em;
width: 90%;
max-width:800px;
position: relative;
}
/* form elemnts are not working properly. Do I need the below css? */
#frmterm fieldset,#frmterm fieldset legend, #frmterm fieldset ol, #frmterm fieldset li {width: 100%;}
#frmterm, li {
text-align: left;
margin-bottom: 1.5em;
width: 100%;
}
#frmterm input {
width: 80%;
}
#frmterm textarea {
width: 80%;
height:200%;
display: block;
}
#frmterm fieldset:nth-child(2) {
text-align: center;
}
@media screen and (max-width:800px) and (min-width:540px)
{
/* Tablets */
#sideContentWrapper {
min-width:150px;
width: 30%;
float: right;
margin-right:0.25em;
}
#sideContent {
margin-left: 0.5em;
min-height: 20em;
background:#999; /* marker */
}
}
@media screen and (max-width:540px)
{
/* Smartphone */
#frmterm, li {margin-bottom: 0.5em;}
#sideContentWrapper {
display:none;
}
#mainContent {
width: 100%;
}
</style>
</head>
<body>
<div id="header">Header</div>
<div id="mainContent">
<form action="" id="frmterm">
<fieldset>
<legend>
<ol>
<li><label for="terms">Term:</label><input id="terms" type="text" value="" /></li>
<li><label for="summary">Summary:</label><input id="summary" type="text" value="" /></li>
<li><label for="category">Category:</label><textarea id="category" ></textarea></li>
</ol>
</legend>
</fieldset>
<fieldset>
<button type="submit">Submit</button>
</fieldset>
</form>
</div>
<div id="sideContentWrapper">
<div id="sideContent">
Side Content
</div>
</div>
</body>
</html>
- Пример разрешения, где проблема может быть видна:
В 980 * 1280, элементы формы соприкасаются боковой панели, в то время как я дал 80 % ширины для формирования элементов. Чтобы сообщить об этом, я использовал «Отзывчивый дизайн» для Firefox.
Код ниже помог немного в вышеуказанной проблемы:
#frmterm fieldset,#frmterm fieldset legend, #frmterm fieldset ol, #frmterm fieldset li {width: 100%;}
, но я не знаю, почему я должен упомянуть его в CSS.
Меня не интересует улучшение HTML до тех пор, пока это не будет обязательным. Я изучаю его, поэтому изучаю его один за другим. Я хочу, чтобы исправил его с помощью CSS. Если возможно, предоставьте важные соображения для элементов формы в гибком дизайне CSS .
Также мне нужен метадатчик Viewport. Я не вижу преимуществ на своей веб-странице , когда я изменяю размер веб-страницы в браузере для ноутбуков.
Я вижу, что это хорошо. Но не уверен, что вы там делали, когда я снимал ваш css один за другим, и он все еще работал. Ваши предложения выглядят важными. Проголосовал. –
Любые комментарии к моему выше комментарию по размеру коробки. Где именно это необходимо для этой разметки? –
Наиболее важной частью изменений, которые я сделал, был следующий код: #frmterm {top: 20px; внизу: 20px; слева: 20px; право: 20px; position: absolute;} Вы должны провести некоторое исследование абсолютного позиционирования внутри относительных позиционированных элементов. –