Первая часть вашего вопроса может быть решена только с помощью HTML и CSS; вам нужно будет использовать Javascript для второй части.
Получение ярлыка рядом с переключателем
Я не уверен, что вы подразумеваете под "рядом": на одной и той же строке или рядом, или на отдельных строках? Если вы хотите, чтобы все переключатели были в одной строке, просто используйте поля, чтобы раздвинуть их. Если вы хотите, чтобы каждый из них был на своей линии, у вас есть два варианта (если вы не хотите выходить на территорию float:
):
- Используйте
<br />s
, чтобы разделить параметры и некоторые CSS, чтобы выровнять их по вертикали:
<style type='text/css'>
.input input
{
width: 20px;
}
</style>
<div class="input radio">
<fieldset>
<legend>What color is the sky?</legend>
<input type="hidden" name="data[Submit][question]" value="" id="SubmitQuestion" />
<input type="radio" name="data[Submit][question]" id="SubmitQuestion1" value="1" />
<label for="SubmitQuestion1">A strange radient green.</label>
<br />
<input type="radio" name="data[Submit][question]" id="SubmitQuestion2" value="2" />
<label for="SubmitQuestion2">A dark gloomy orange</label>
<br />
<input type="radio" name="data[Submit][question]" id="SubmitQuestion3" value="3" />
<label for="SubmitQuestion3">A perfect glittering blue</label>
</fieldset>
</div>
Применение стиля к выбранной в данный момент метке + переключатель
Стилизация <label>
- вот почему вам нужно прибегнуть к Javascript. Библиотека типа jQuery
идеально подходит для этого:
<style type='text/css'>
.input label.focused
{
background-color: #EEEEEE;
font-style: italic;
}
</style>
<script type='text/javascript' src='jquery.js'></script>
<script type='text/javascript'>
$(document).ready(function() {
$('.input :radio').focus(updateSelectedStyle);
$('.input :radio').blur(updateSelectedStyle);
$('.input :radio').change(updateSelectedStyle);
})
function updateSelectedStyle() {
$('.input :radio').removeClass('focused').next().removeClass('focused');
$('.input :radio:checked').addClass('focused').next().addClass('focused');
}
</script>
Для работы в IE требуются хуки focus
и blur
.