Привет всем читателям блога “Записки о WordPress”! Многие блогеры используют в качестве шаблона для своего блога стандартные WordPress темы Twenty Eleven или Twenty Ten. Эти темы выбирают, потому что они стильные, красивые, минималистичные. Но вот форма комментирования выглядит громоздкой. В этой статье я расскажу, как поменять вид формы комментирования в теме Twenty Eleven.
Вот так форма комментирования в теме Twenty Eleven выглядит по-умолчанию. При нажатии на картинку можно посмотреть ее в 100% масштабе. Не кажется ли вам, что если сделать поля ввода “имя”, “email” и “сайт” в одну строку, то форма станет намного компактнее?
Конечно, про изменение формы комментариев писали уже много, но для современных тем, таких как Twenty Eleven и Twenty Ten, не подходят рекомендации для других, более старых тем.
Шаг 1. Разбираем стандартный код формы
Вывод формы комментирования в теме Twenty Eleven осуществляется функцией <?php comment_form(); ?>
из файла comments.php.
Стилизация осуществляется строками с 2039 по 2191 файла стилей.
Давайте с помощью FireBug посмотрим html-код формы комментариев:
Как можно заметить, поля ввода input
заключены внутрь тегов p
. Именно эти теги нам и надо стилизовать.
Шаг 2. Редактируем CSS
Сначала найдем и удалим ненужный код:
1 2 3 |
#respond p { margin: 10px 0; } |
Теперь удалим отступы, добавив margin: 0
для полей ввода. Установим ширину поля в 85% от ширины тега p, в котором оно находится. При необходимости, поменяйте высоту input’а.
2176 2177 2178 2179 2180 2181 |
#respond input[type=text] { display: block; height: 24px; margin: 0; width: 85%; } |
Изменим ширину полей input до 30%, добавим следующий код после 2187 строки:
2188 2189 2190 2191 2192 2193 2194 2195 |
p.comment-form-author, p.comment-form-email, p.comment-form-url { display: block; float: left; margin: 0 10px 0 5px; width: 30%; } |
Мы создали стили для полей ввода, задали для них обтекание по левому краю, установили ширину в 30%, и отступы между полями ввода.
Теперь форма комментирования выглядит почти как надо. Правда, лейбл “Комментарий” не на месте. Давайте это исправим.
Шаг 3. Редактируем вывод формы комментариев
В файле comments.php найдите функцию comment_form
, о которой я говорила в начале статьи. Замените ее на следующее:
1 2 3 |
<?php comment_form (array ( 'comment_field'=>'<div style="clear:both"></div><p class="comment-form-comment"><label for="comment">Комментарий</label><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea>' )); ?> |
Мы добавили div, сбрасывающий обтекание, перед выводом формы для текста комментария.
Шаг 4. Последние штрихи
Давайте немного изменим положение звездочки, которая указывает на обязательные поля:
2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 |
#respond .comment-form-author .required, #respond .comment-form-email .required { color: #bd3500; font-size: 22px; font-weight: bold; left: 90%; position: absolute; top: 40px; z-index: 1; } |
Новый стиль формы комментариев в Twenty Eleven
В итоге, у вас должно было получиться примерно следующее:
Получившаяся форма будет одинаково отображаться в всех браузерах, а также изменять свой размер при изменении размера окна браузера.
Полный CSS код формы комментариев, который у меня получился, привожу ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 |
/* Comment Form */ #respond { background: #ddd; border: 1px solid #d3d3d3; -moz-border-radius: 3px; border-radius: 3px; margin: 0 auto 1.625em; padding: 1.625em; position: relative; width: 68.9%; } #respond input[type="text"], #respond textarea { background: #fff; border: 4px solid #eee; -moz-border-radius: 5px; border-radius: 5px; -webkit-box-shadow: inset 0 1px 3px rgba(204,204,204,0.95); -moz-box-shadow: inset 0 1px 3px rgba(204,204,204,0.95); box-shadow: inset 0 1px 3px rgba(204,204,204,0.95); position: relative; padding: 10px; text-indent: 80px; } #respond .comment-form-author, #respond .comment-form-email, #respond .comment-form-url, #respond .comment-form-comment { position: relative; } #respond .comment-form-author label, #respond .comment-form-email label, #respond .comment-form-url label, #respond .comment-form-comment label { background: #eee; -webkit-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); -moz-box-shadow: 1px 2px 2px rgba(204,204,204,0.8); box-shadow: 1px 2px 2px rgba(204,204,204,0.8); color: #555; display: inline-block; font-size: 13px; left: 4px; min-width: 50px; padding: 4px 10px; position: relative; top: 40px; z-index: 1; } #respond input[type="text"]:focus, #respond textarea:focus { text-indent: 0; z-index: 1; } #respond textarea { resize: vertical; width: 95%; } #respond .comment-form-author .required, #respond .comment-form-email .required { color: #bd3500; font-size: 22px; font-weight: bold; left: 90%; position: absolute; top: 40px; z-index: 1; } #respond .comment-notes, #respond .logged-in-as { font-size: 13px; } #respond .form-submit { float: right; margin: -20px 0 10px; } #respond input#submit { background: #222; border: none; -moz-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: 0px 1px 2px rgba(0,0,0,0.3); -moz-box-shadow: 0px 1px 2px rgba(0,0,0,0.3); box-shadow: 0px 1px 2px rgba(0,0,0,0.3); color: #eee; cursor: pointer; font-size: 15px; margin: 20px 0; padding: 5px 42px 5px 22px; position: relative; left: 30px; text-shadow: 0 -1px 0 rgba(0,0,0,0.3); } #respond input#submit:active { background: #1982d1; color: #bfddf3; } #respond #cancel-comment-reply-link { color: #666; margin-left: 10px; text-decoration: none; } #respond .logged-in-as a:hover, #respond #cancel-comment-reply-link:hover { text-decoration: underline; } .commentlist #respond { margin: 1.625em 0 0; width: auto; } #reply-title { color: #373737; font-size: 24px; font-weight: bold; line-height: 30px; } #cancel-comment-reply-link { color: #888; display: block; font-size: 10px; font-weight: normal; line-height: 2.2em; letter-spacing: 0.05em; position: absolute; right: 1.625em; text-decoration: none; text-transform: uppercase; top: 1.1em; } #cancel-comment-reply-link:focus, #cancel-comment-reply-link:active, #cancel-comment-reply-link:hover { color: #ff4b33; } #respond label { line-height: 2.2em; } #respond input[type=text] { display: block; height: 24px; margin: 0; width: 85%; } #respond p { font-size: 12px; } p.comment-form-comment { margin: 0; } p.comment-form-author, p.comment-form-email, p.comment-form-url { display: block; float: left; margin: 0 10px 0 5px; width: 30%; } .form-allowed-tags { display: none; } |
Может, вы также захотите поменять форму поиска в своем блоге?
Если возникли вопросы, пишите, я обязательно отвечу!