Кнопки закрытия на CSS
.cl-btn-1 {
margin: 20px;
position: relative;
display: flex;
justify-content: center;
height: 112px;
}
.cl-btn-1 div {
width: 100px;
height: 100px;
position: absolute;
background-image: radial-gradient(#FFF, #BFE2FF);
border-radius: 50%;
transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
border: 6px solid #337AB7;
cursor: pointer;
}
.cl-btn-1 div > span {
background-color: #337AB7;
display: block;
height: 12px;
border-radius: 6px;
position: relative;
transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
position: absolute;
top: 50%;
margin-top: -6px;
left: 18px;
width: 64px;
}
.cl-btn-1 div > span span {
display: block;
background-color: #215b8c;
width: 12px;
height: 12px;
border-radius: 6px;
transition: all 0. 4s cubic-bezier(0.215, 0.61, 0.355, 1);
position: absolute;
left: 0;
top: 0;
}
.cl-btn-1 div > span.left {
transform: rotate(45deg);
transform-origin: center;
}
.cl-btn-1 div > span.left .circle-left {
transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
margin-left: 0;
}
.cl-btn-1 div > span.left .circle-right {
transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
margin-left: 52px;
}
.cl-btn-1 div > span.right {
transform: rotate(-45deg);
transform-origin: center;
}
.cl-btn-1 div > span.right .circle-left {
transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
margin-left: 0;
}
.cl-btn-1 div > span.right .circle-right {
transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
margin-left: 52px;
}
.cl-btn-1 div:hover > span {
background-color: #215b8c;
transition: all 0. 4s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.cl-btn-1 div:hover > span span {
transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
background-color: #337AB7;
}
.cl-btn-1 div:hover > span.left .circle-left {
transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
margin-left: 52px;
}
.cl-btn-1 div:hover > span.left .circle-right {
transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
margin-left: 0;
}
.cl-btn-1 div:hover > span.right .circle-left {
transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
margin-left: 52px;
}
.cl-btn-1 div:hover > span.right .circle-right {
transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
margin-left: 0;
}
Убираем нативный крестик в поле ввода под IE
Во время ввода в текстовом поле IE появляется «крестик», который позволяет очистить поле в один клик. Иногда стиль, и вообще наличие этого крестика, не соответствуют вашему дизайну или логике работы поля. Разбираемся, как его убрать.
Режим совместимости в IE не позволяет определить когда был введен этот псевдоэлемент, но начиная с версии Internet Explorer 10 поддерживаются стили псевдоконтейнера ::-ms-clear.
В стили можно добавить, к примеру:
input::-ms-clear { display: none; }
input::-ms-clear { display: none; } |
чтобы отключить показ крестика.
Список поддерживаемых свойств ограничен, при желании можно задать цвет крестика:
input::-ms-clear { color: #f00; // красный цвет }
input::-ms-clear { color: #f00; // красный цвет } |
Данная запись опубликована в 13. 05.2018 19:46 и размещена в Танцы с CSS.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Цвет HR — как изменить в CSS
Апрель 27, 2017 г.
Горизонтальная линия HR — независимый HTML элемент — вызывает много вопросов у начинающих. Основная проблема — установка цвета. Установка стилей …
ЧитатьПропорциональное заполнение контейнера картинкой
Ноябрь 29, 2017 г.
Речь идет о том, чтобы показать изображение внутри контейнера так, чтобы оно заполнило собой весь контейнер, но при этом не изменились пропорции картинки. Сейчас это актуально в связи с необходимостью поддержки отображения сайта на мобильных устройствах. …
Читатьcss — Почему этот крестик остается серым в Safari iOS?
Я просто потратил слишком много времени на выяснение того, почему мой <button>

<button type="button">✖</button>
Вот что я получил:
Я был уверен, что что-то упустил, поскольку мы все знаем, что кнопки не так просто стилизовать. Но после применения color: #fff;
и -webkit-appearance: none
я ожидал, что это сработает. Я наконец-то подумал о том, чтобы попробовать других персонажей, и, к моему удивлению, вот результат:
Видимо мой CSS был правильным, виноват был сам персонаж. Теперь мне действительно любопытно, что случилось. Сначала я подумал, что, возможно, этот крест моего выбора был эмодзи, но, похоже, не так. Первый — это обычная заглавная буква X (1 байт), а все остальные — 3 байта. Emoji 4 байта, верно?
Мой вопрос, в основном из любопытства: почему этот крест остается серым?
Для справки вот кресты, которые я тестировал: X ✕ ☓ ✖ ✗ ✘
, четвертый — тот. Я использовал шрифт Tahoma , но я не уверен, имеет ли это значение для символов Юникода.
-1
Robo Robok 8 Апр 2020 в 23:07
2 ответа
К сожалению, смайлики не работают так же. Некоторые из них являются текстовыми символами, а некоторые просто эмодзи. Я делаю этот простой трюк, и это работает большую часть времени:
element {
color: transparent;
text-shadow: 0 0 0 green;
}
1
Naseh Badalov 8 Апр 2020 в 21:21
Тайна разгадана. У этого конкретного кросс-персонажа есть очень близкий эмодзи-брат. Сам крест — U+2716
, который является десятичным 10006
.
Но есть и эмодзи, которые выглядят почти одинаково, за исключением серого (по крайней мере, в интерпретации Apple) и с мягкой тенью. Этот эмодзи состоит из двух комбинированных персонажей:
- Тот же
U+2716
крест - Символ с именем
VARIATION SELECTOR-16
, являющийсяU+FE0F
или десятичным65039
Похоже, что Safari на iOS при некоторых обстоятельствах преобразует U+2716
в своего смайлика. Один из таких случаев — поместить его в <button>
.
1
Robo Robok 8 Апр 2020 в 22:16
61109169Создание игры крестики-нолики с использованием только CSS
В этом уроке мы познакомимся с интересными возможностями CSS и создадим игру крестики-нолики на чистом CSS. Эта игра предназначена для двух игроков, играющих поочередно, для крестика нужно нажать один раз, для нолика — два раза.
Основные особенности:
- Для состояний ячеек используются скрытые переключатели-флажки и подписи.
Неопределенное состояние означает пустую клетку, отмеченное — крестик, неотмеченное — нолик.
- При запуске небольшой скрипт, единственный JavaScript в этом примере, задает всем переключателям-флажкам неопределенное состояние.
- Используются псевдоклассы :checked (отмеченный) и :indeterminate (неопределенный) и родственные и соседние селекторы для изменения состояний ячеек и вывода информации о победителе.
- Когда кто-то нажимает на переключатель-флажок или в этом случае на его подпись, меняется состояние с неопределенного или на отмеченное, или на неотмеченное, в зависимости от того, сколько раз было нажато.
Как дополнительное преимущество в эти крестики-нолики можно играть с клавиатуры, выбирая клеточку табуляцией и используя пробел для нажатия, хотя, вероятно, эта игра не подойдет для программы — экранного диктора.
Для разметки гораздо лучше подошел бы элемент таблицы, но мы решили пожертвовать в этом случае структурой, чтобы пример стал проще.
Все современные версии браузеров поддерживают неопределенное состояние, но в некоторых старых версиях браузеров наш пример не работает, например, в некоторых старых браузерах на движке Webkit из-за неправильной работы с родственными и соседними селекторами. Эта демонстрация должна работать даже в браузере Internet Explorer версии 9, хотя мы не проверяли.
В некоторых современных браузерах с некоторыми настройками при однократном нажатии появляется не крестик, а нолик, а при двукратном — не нолик, а крестик, но это не ухудшает функциональность игры.
Демонстрация работы
Код HTML
<input type="checkbox" /><label for="a11">Top left</label> <input type="checkbox" /><label for="a12">Top center</label> <input type="checkbox" /><label for="a13">Top right</label> <input type="checkbox" /><label for="a21">Middle left</label> <input type="checkbox" /><label for="a22">Middle center</label> <input type="checkbox" /><label for="a23">Middle right</label> <input type="checkbox" /><label for="a31">Bottom left</label> <input type="checkbox" /><label for="a32">Bottom center</label> <input type="checkbox" /><label for="a33">Bottom right</label> <p>State: </p>
Код
var checkboxes = document.getElementsByTagName('input'); for(var i=0; i<checkboxes.length; i++) { checkboxes[i].indeterminate = true; }
Код CSS
input { position:absolute; clip: rect(0,0,0,0); } label { display:block; width:30px; height:50px; padding:10px 20px; outline:1px solid #bbb; background:white; float:left; color:transparent; font-size:50px; line-height:1; overflow:hidden; } input:focus + label { background:#ffd; } label:nth-of-type(3n + 1) { clear:left } label:before { color:black; } input:checked + label:before { content: '×'; color: green; } input:not(:checked) + label:before { content: '○'; color: blue; } input:indeterminate + label:before { content: ' '; } p { clear:both; padding:10px 0; font:150% sans-serif; } p:after { content: 'Tie'; font-weight:bold; } input:indeterminate + label ~ p:after { content: 'Still playing'; } input:nth-of-type(3n+1):checked + label + input:checked + label + input:checked ~ p:after, #a11:checked ~ #a21:checked ~ #a31:checked ~ p:after, #a12:checked ~ #a22:checked ~ #a32:checked ~ p:after, #a13:checked ~ #a23:checked ~ #a33:checked ~ p:after, #a11:checked ~ #a22:checked ~ #a33:checked ~ p:after, #a13:checked ~ #a22:checked ~ #a31:checked ~ p:after { content: 'X won'; color:green; } input:nth-of-type(3n+1):not(:checked):not(:indeterminate) + label + input:not(:checked):not(:indeterminate) + label + input:not(:checked):not(:indeterminate) ~ p:after, #a11:not(:checked):not(:indeterminate) ~ #a21:not(:checked):not(:indeterminate) ~ #a31:not(:checked):not(:indeterminate) ~ p:after, #a12:not(:checked):not(:indeterminate) ~ #a22:not(:checked):not(:indeterminate) ~ #a32:not(:checked):not(:indeterminate) ~ p:after, #a13:not(:checked):not(:indeterminate) ~ #a23:not(:checked):not(:indeterminate) ~ #a33:not(:checked):not(:indeterminate) ~ p:after, #a11:not(:checked):not(:indeterminate) ~ #a22:not(:checked):not(:indeterminate) ~ #a33:not(:checked):not(:indeterminate) ~ p:after, #a13:not(:checked):not(:indeterminate) ~ #a22:not(:checked):not(:indeterminate) ~ #a31:not(:checked):not(:indeterminate) ~ p:after{ content: 'O won'; color:blue; }
Автор урока Lea Verou
Перевод — Дежурка
Смотрите также:
Как привязать ссылки к фигурам и изображениям с помощью HTML и CSS?
Возможно, на вашем сайте есть изогнутый баннер, для которого нужно создать многогранную область клика. Тег <a> позволяет создать только кликабельный прямоугольник. Но есть способы, с помощью которых можно изменить его форму.
Для кликабельных изображений можно использовать формат SVG. Самый простой способ сделать часть SVG-изображения кликабельной — это добавить в разметку элемент гиперссылки SVG. Для этого нужно обернуть элемент в <a>. Это может быть простая фигура, сложные контуры или группа SVG-элементов.
В приведенном ниже примере ссылка охватывает круг, а другая – часть фигуры стрелы.
В этой демонстрации я использовала устаревшее свойство xlink:href, чтобы ссылка работала в браузере Safari.
При реализации данного подхода нужно убедиться, что тег <a> находится внутри разметки SVG. А также что он оборачивает фигуру, которую нужно сделать кликабельной.
Чтобы добавить кликабельную область на фото, можно использовать карту изображений.
Она будет перекрывать все изображение. Поэтому нужно будет определить область клика.
Карты изображений появились в HTML 3, поэтому они поддерживаются всеми браузерами. Для их стилизации используется CSS и JavaScript.
В W3 Schools есть отличный пример использования карты изображений. На ней изображена солнечная система. Клик по поверхности любой из планет отобразит ее увеличенное фото. Все остальные области изображения не кликабельны. Координаты областей, определенных в карте, соответствуют расположению солнца и планет на базовом изображении.
В следующем примере для стилизации областей клика используется jQuery. Обратите внимание, как карта накладывает изображение и как координаты используются для создания целей.
Вернемся к фигуре из примера с использованием SVG, которое заменим растровым изображением. Нам нужно привязать ссылку к стреле и центру мишени. Мы знаем ее координаты X и Y, а также радиус в базовом изображении. Поэтому довольно просто определить круг области клика.
С фигурой стрелы все сложнее. Я использовал сервис image-map.net для построения фигуры и создания области для карты изображения. Она состоит из многоугольника и круга для закругленного края в верхней части.
Свойство clip-path позволяет определить область клика без использования JavaScript. В данном случае у нас есть область клика в форме пятиконечной звезды.
В приведенном ниже примере показано использование clip-path, примененного к JPEG-изображению и абсолютно позиционированной гиперссылке.
В следующем примере я объединила фигуру крестика с SVG-элементом гиперссылки, чтобы создать начало интерактивной игры в крестики-нолики. Здесь SVG используется для того, чтобы область в середине фигуры «O» была не кликабельной. Хотя для фигуры крестика, которая является многоугольником, достаточно было бы использовать CSS-свойство clip-path.
Существуют и другие варианты создания с помощью HTML и CSS элементов непрямоугольной формы Но не все из них будут изменять форму области клика.
Большинство приемов создания фигур с помощью CSS основаны на использовании прозрачных границ.
Ниже продемонстрирована фигура сердца, которая не зависит от прозрачных границ. Она является единственной кликабельной областью элемента.
В следующем примере с помощью прозрачных границ создается фигура треугольника. Но область клика не повторяет форму фигуры. Наведите указатель мыши на элемент, и вы увидите ее истинный размер.
Надеемся, что это руководство дало вам базовое понимание способов создания интерактивных областей на изображениях и фигурах с помощью HTML и CSS.
Данная публикация является переводом статьи «The Many Ways to Link Up Shapes and Images with HTML and CSS» , подготовленная редакцией проекта.
курсор CSS
Здравствуйте дорогие друзья и сегодня мы с вами рассмотрим какие возможности предоставляет нам CSS для стилизации курсора.
Во первых что вы должны знать так это то, что за курсор , а точнее его отображение в css отвечает свойство cursor которое можем принимать следующие значения.
Изначально свойство cursor имеет значение default , то есть по умолчанию.
cursor:default;
Cамое часто применяемое значение это pointer
cursor:pointer;
которое указывает на то что элемент активный и по нему можно кликнуть.
Если вы хотите придать вашему курсору таинственности то можете воспользоваться значением
cursor:help;
которое добавляет к основному курсору знак вопроса.
Значение progress и wait создают эффект что у вас что то загружается.
cursor:progress;
значок загрузки с курсором.
cursor:wait;
значок загрузки без курсора.
Хотите ввести что то в текстовое поле не вопрос значение курсора text укажет вам что здесь можно вводить текст.
cursor:text;
Для любителей технологий drag-end-drop так же найдутся интересные плюшки связанные с отображением курсора при перемещении.
cursor:move;
перемещение во всех направлениях.
cursor: ne-resize; /* от нижнего левого до верхнего правого угла*/
cursor: e-resize;/*перемещение по горизонтали*/
cursor: se-resize;/*от верхнего левого к нижнему правому*/
cursor: s-resize;/*перемещение по горизонтали*/
cursor: sw-resize;/*от верхнего правого до левого нижнего*/
Если вы хотите что то добавить в таблицу то вам может подойти такой вид курсора
cursor:cell;
Курсор в виде крестика:
cursor:crosshair ;
Хотите курсором обозначить копирование не вопрос:
cursor:copy;
или может показать пользователю что данная функция недоступна ok:
cursor:not-allowed;
или cursor:no-drop;
Выйти или вернуться назад:
cursor:alias;
Мы также можем с помощью курсора показать пользователю что к элементу есть возможность применять zoom — эффекты.
cursor:zoom-in;/*Приблизить*/
cursor:zoom-out;/*Отдалить*/
Если не один из выше предложенных вариантов вас не устраивает то можно вставить свой собственный курсор картинкой.
cursor: url("mysursor.jpg"), auto;
Ну тут я думаю вам ничего объяснять не стоит.
Мы можем также вообще убрать курсор:
cursor:none;
Вот в принципе и все что я хотел вам рассказать про стилизацию курсора в css.
Надеюсь данная статья была для вас полезна и увлекательна и вы не раз еще воспользуетесь полученными знаниями.
Я желаю вам успехов и удачи! Пока!
Iconizer.net | cross бесплатные иконки
50
Вся коллекция8700
https://icons8.com/iconizer/files/Juicy_Fruit/orig/cross.png
https://icons8.com/iconizer/files/Juicy_Fruit/thumb/64/cross.png
30
Вся коллекция1724
https://icons8. com/iconizer/files/Web_Design_Creatives/orig/Cross-lines.png
https://icons8.com/iconizer/files/Web_Design_Creatives/thumb/64/Cross-lines.png
151
Вся коллекция12515
https://icons8.com/iconizer/files/Woothemes_Ultimate_Icon_Set/orig/cross.png
https://icons8.com/iconizer/files/Woothemes_Ultimate_Icon_Set/thumb/64/cross.png
78
Вся коллекция1190
https://icons8.com/iconizer/files/SEM_Labs/orig/arrow_cross_up.png
https://icons8.com/iconizer/files/SEM_Labs/orig/arrow_cross_up.png
223
Вся коллекция1181
https://icons8.com/iconizer/files/SEM_Labs/orig/arrow_cross_down.png
https://icons8.com/iconizer/files/SEM_Labs/orig/arrow_cross_down.png
223
Вся коллекция1256
https://icons8.com/iconizer/files/SEM_Labs/orig/arrow_cross_left.png
https://icons8.com/iconizer/files/SEM_Labs/orig/arrow_cross_left.png
223
Вся коллекция1263
https://icons8.com/iconizer/files/SEM_Labs/orig/arrow_cross_right. png
https://icons8.com/iconizer/files/SEM_Labs/orig/arrow_cross_right.png
223
Вся коллекция177
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/8-em-cross.png
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/8-em-cross.png
182
Вся коллекция357
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/12-em-cross.png
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/12-em-cross.png
182
Вся коллекция626
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/24-em-cross.png
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/24-em-cross.png
182
Вся коллекция469
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/16-em-cross.png
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/16-em-cross.png
182
Вся коллекция299
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/16-tag-cross.png
https://icons8.com/iconizer/files/Sweetie_BasePack/orig/16-tag-cross. png
182
Вся коллекция501
https://icons8.com/iconizer/files/Flag_icons/orig/Red%20Cross.png
https://icons8.com/iconizer/files/Flag_icons/orig/Red Cross.png
254
Вся коллекция501
https://icons8.com/iconizer/files/Flag_icons/orig/Red%20Cross.png
https://icons8.com/iconizer/files/Flag_icons/orig/Red Cross.png
254
Вся коллекция5950
https://icons8.com/iconizer/files/Flavour_Extended/orig/cross.png
https://icons8.com/iconizer/files/Flavour_Extended/orig/cross.png
419
Вся коллекция4842
https://icons8.com/iconizer/files/Function_icons/orig/cross_48.png
https://icons8.com/iconizer/files/Function_icons/orig/cross_48.png
128
Вся коллекция778
https://icons8.com/iconizer/files/Fugue_Icons/orig/do-not-disturb-sign-cross.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/do-not-disturb-sign-cross.png
2042
Вся коллекция893
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_circle_frame. png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_circle_frame.png
2042
Вся коллекция886
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-circle-frame.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-circle-frame.png
2042
Вся коллекция663
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-script.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-script.png
2042
Вся коллекция721
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_circle.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_circle.png
2042
Вся коллекция759
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_octagon_frame.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_octagon_frame.png
2042
Вся коллекция588
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-button.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-button. png
2042
Вся коллекция478
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-small-white.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-small-white.png
2042
Вся коллекция296
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_small.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_small.png
2042
Вся коллекция359
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-small-circle.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-small-circle.png
2042
Вся коллекция359
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-small-circle.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-small-circle.png
2042
Вся коллекция729
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-circle.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-circle.png
2042
Вся коллекция728
https://icons8. com/iconizer/files/Fugue_Icons/orig/cross-white.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-white.png
2042
Вся коллекция768
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_shield.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_shield.png
2042
Вся коллекция768
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_shield.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross_shield.png
2042
Вся коллекция344
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-small.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-small.png
2042
Вся коллекция759
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-octagon-frame.png
https://icons8.com/iconizer/files/Fugue_Icons/orig/cross-octagon-frame.png
2042
Вся коллекция6065
https://icons8.com/iconizer/files/Addictive_Flavour/orig/cross.png
https://icons8.com/iconizer/files/Addictive_Flavour/orig/cross.png
424
Вся коллекция10949
https://icons8.com/iconizer/files/Crystal_Clear/orig/button_cancel.png
https://icons8.com/iconizer/files/Crystal_Clear/thumb/64/button_cancel.png
1157
Вся коллекция13963
https://icons8.com/iconizer/files/Human_o2/orig/dialog-error.png
https://icons8.com/iconizer/files/Human_o2/thumb/64/dialog-error.png
1055
Вся коллекция655
https://icons8.com/iconizer/files/Silk/orig/cross.png
https://icons8.com/iconizer/files/Silk/orig/cross.png
889
Вся коллекция653
https://icons8.com/iconizer/files/Led_Icons/orig/cross_octagon_fram.png
https://icons8.com/iconizer/files/Led_Icons/orig/cross_octagon_fram.png
488
Вся коллекция767
https://icons8.com/iconizer/files/Led_Icons/orig/cross_shield_2.png
https://icons8.com/iconizer/files/Led_Icons/orig/cross_shield_2.png
488
Вся коллекция673
https://icons8.com/iconizer/files/Led_Icons/orig/cross_octagon.png
https://icons8.com/iconizer/files/Led_Icons/orig/cross_octagon.png
488
Вся коллекция764
https://icons8.com/iconizer/files/Led_Icons/orig/cross.png
https://icons8.com/iconizer/files/Led_Icons/orig/cross.png
488
Вся коллекция779
https://icons8.com/iconizer/files/Led_Icons/orig/cross_shield.png
https://icons8.com/iconizer/files/Led_Icons/orig/cross_shield.png
488
Вся коллекция617
https://icons8.com/iconizer/files/Gnome_icons/orig/stock_insert-cross-reference.png
https://icons8.com/iconizer/files/Gnome_icons/orig/stock_insert-cross-reference.png
1032
Вся коллекция1049
https://icons8.com/iconizer/files/Farm-fresh/orig/cross.png
https://icons8.com/iconizer/files/Farm-fresh/orig/cross.png
764
Вся коллекция2212
https://icons8.com/iconizer/files/Crystal_Project/orig/button_cancel.png
https://icons8.com/iconizer/files/Crystal_Project/orig/button_cancel.png
475
Вся коллекция1373
https://icons8.com/iconizer/files/Shrunk_Pidgin_Smilies/orig/fingers-crossed.png
https://icons8.com/iconizer/files/Shrunk_Pidgin_Smilies/orig/fingers-crossed.png
170
Вся коллекция831
https://icons8.com/iconizer/files/Web_Design_Creatives/orig/Crossed-abc.png
https://icons8.com/iconizer/files/Web_Design_Creatives/thumb/64/Crossed-abc.png
151
Вся коллекция10125
https://icons8.com/iconizer/files/Human_o2/orig/gtk-print-error.png
https://icons8.com/iconizer/files/Human_o2/thumb/64/gtk-print-error.png
1055
Вся коллекция900
https://icons8.com/iconizer/files/Google_Maps_Icons/orig/pedestriancrossing.png
https://icons8.com/iconizer/files/Google_Maps_Icons/orig/pedestriancrossing.png
597
Вся коллекция1307
https://icons8.com/iconizer/files/Google_Maps_Icons/orig/crossingguard.png
https://icons8.com/iconizer/files/Google_Maps_Icons/orig/crossingguard.png
597
CSS свойство text-decoration-line
Пример
Установить разные типы линий оформления текста:
дива {текст-украшение-линия: надстрочный;
}
div.b
{
Текст-Оформление-Строка: подчеркивание;
}
div.c
{
текст-украшение-строка: сквозная строка;
}
div.d
{
text-decoration-line: нижнее подчеркивание;
}
Определение и использование
Свойство text-decoration-line
устанавливает тип используемого оформления текста.
(например, подчеркивание, подчеркивание, сквозная линия).
Совет: Также обратите внимание на свойство text-decoration, который является сокращенным свойством для text-decoration-line, text-decoration-style и текст-украшение-цвет.
Примечание: Вы также можете комбинировать несколько значений, например подчеркивание и над чертой, чтобы отображать строки как под текстом, так и над ним.
Значение по умолчанию: | нет |
---|---|
Унаследовано: | нет |
Анимируемое: | нет.Прочитать о animatable |
Версия: | CSS3 |
Синтаксис JavaScript: | объект .style.textDecorationLine = «overline» Попытайся |
Поддержка браузера
Числа в таблице указывают первую версию браузера, полностью поддерживающую свойство.
Числа, за которыми следует -moz-, указывают первую версию, которая работала с префиксом.
Объект | |||||
---|---|---|---|---|---|
текст-украшение-строка | 57,0 | 79,0 | 36,0 6,0 -моз- | 7.1 -webkit- | 44,0 |
Синтаксис CSS
текст-украшение-строка: нет | подчеркивание | над чертой | сквозная строка | начальная | наследование;
Стоимость недвижимости
Значение | Описание | Играй |
---|---|---|
нет | Значение по умолчанию.Задает отсутствие строки для оформления текста | Играй » |
подчеркивание | Указывает, что строка будет отображаться под текстом | Играй » |
черта | Указывает, что линия будет отображаться поверх текста | Играй » |
сквозной | Указывает, что строка будет отображаться через текст | Играй » |
начальный | Устанавливает для этого свойства значение по умолчанию.Читать про начальный | Играй » |
наследовать | Наследует это свойство от своего родительского элемента. Прочитать про наследство |
Связанные страницы
УчебникCSS: Текст CSS
Ссылка на HTML DOM: свойство textDecorationLine
CSS свойство стиля оформления текста
Пример
Установить различные типы стилей оформления текста:
div.а {текст-украшение-строка: подчеркивание;
стиль оформления текста: сплошной;
}
div.b
{
текст-украшение-строка: подчеркивание;
стиль оформления текста: волнистый;
}
div.c
{
текст-украшение-строка: подчеркивание;
стиль оформления текста: двойной;
}
div.d
{
текст-украшение-строка: подчеркивание подчеркивания;
стиль оформления текста: волнистый;
}
Определение и использование
Свойство text-decoration-style
устанавливает стиль оформления текста.
(например, сплошная, волнистая, пунктирная, пунктирная, двойная).
Совет: Также обратите внимание на свойство text-decoration, который является сокращенным свойством для text-decoration-line, text-decoration-style и текст-украшение-цвет.
Значение по умолчанию: | цельный |
---|---|
Унаследовано: | нет |
Анимируемое: | нет. Прочитать о animatable |
Версия: | CSS3 |
Синтаксис JavaScript: | объект .style.textDecorationStyle = «волнистый» Попытайся |
Поддержка браузера
Числа в таблице указывают первую версию браузера, полностью поддерживающую свойство.
Числа, за которыми следует -moz-, указывают первую версию, которая работала с префиксом.
Объект | |||||
---|---|---|---|---|---|
стиль оформления текста | 57.0 | 79,0 | 36,0 6,0 -моз- | 12,1 | 44,0 |
Синтаксис CSS
стиль оформления текста: сплошной | двойной | пунктирный | пунктирный | волнистый | начальный | наследование;
Стоимость недвижимости
Связанные страницы
УчебникCSS: Текст CSS
Ссылка на HTML DOM: свойство textDecorationStyle
cross-fade () — CSS: каскадные таблицы стилей
Функция cross-fade ()
CSS может использоваться для смешивания двух или более изображений с определенной прозрачностью.Его можно использовать для множества простых манипуляций с изображениями, таких как окрашивание изображения в сплошной цвет или выделение определенной области страницы путем комбинирования изображения с радиальным градиентом.
Важно : Спецификация и текущие реализации имеют разный синтаксис. Сначала объясняется синтаксис спецификации.
Синтаксис спецификации
Функция cross-fade ()
принимает список изображений с процентом, определяющим, какая часть каждого изображения сохраняется с точки зрения непрозрачности, когда оно смешивается с другими изображениями.Значение процента должно быть закодировано без кавычек, должно содержать символ «%», а его значение должно находиться в диапазоне от 0% до 100%.
Эту функцию можно использовать в CSS везде, где можно использовать обычную ссылку на изображение.
Процент переходного затухания
Думайте о процентном соотношении как о значении непрозрачности для каждого изображения. Это означает, что значение 0% означает, что изображение полностью прозрачно, а значение 100% делает изображение полностью непрозрачным.
переход (url (white.png) 0%, url (black.png) 100%);
затухание (url (white.png) 25%, url (black.png) 75%);
затухание (url (white.png) 50%, url (black.png) 50%);
затухание (url (white.png) 75%, url (black.png) 25%);
плавное затухание (url (white.png) 100%, url (black.png) 0%);
плавное затухание (url (green.png) 75%, url (red.png) 75%);
Если какие-либо проценты опущены, все указанные проценты суммируются и вычитаются из 100%
. Если результат больше 0%, результат делится поровну между всеми изображениями с пропущенными процентами.
В простейшем случае два изображения размываются между собой. Для этого только одно из изображений должно иметь процентное значение, другое будет соответственно блеклым. Например, значение 0%, определенное для первого изображения, дает только второе изображение, а значение 100% дает только первое. Значение 25% отображает первое изображение на 25%, а второе — на 75%. Значение 75% является обратным, показывая первое изображение на 75%, а второе на 25%.
Вышеупомянутое также могло быть записано как:
переход (url (white.png) 0%, url (black.png));
затухание (url (white.png) 25%, url (black.png));
переход (url (white.png), url (black.png));
затухание (url (white.png) 75%, url (black.png));
затухание (url (white.png) 100%, url (black.png));
плавное затухание (url (green.png) 75%, url (red.png) 75%);
Если проценты не объявлены, оба изображения будут непрозрачными на 50% с рендерингом с плавным переходом в виде равномерного слияния обоих изображений. В приведенном выше примере 50% / 50% не обязательно указывать проценты, так как, когда процентное значение опущено, включенные проценты складываются и вычитаются из 100%.Если результат больше 0, то он делится поровну между всеми изображениями с пропущенными процентами.
В последнем примере сумма обоих процентных значений не равна 100%, и поэтому оба изображения включают соответствующие им непрозрачности.
Если проценты не указаны и включены три изображения, каждое изображение будет непрозрачным на 33,33%. Две следующие строки (почти) идентичны:
переход (url (red.png), url (yellow.png), url (blue.png));
затухание (url (красный.png) 33,33%, url (yellow.png) 33,33%, url (blue.png) 33,33%);
Старый реализованный синтаксис
плавное затухание (<изображение>, <изображение>, <процент>)
Спецификация функции cross-fade ()
позволяет использовать несколько изображений и для каждого изображения иметь значения прозрачности, независимые от других значений. Так было не всегда. Исходный синтаксис, реализованный в некоторых браузерах, допускал только два изображения, при этом сумма прозрачности этих двух изображений составляла ровно 100%.Исходный синтаксис поддерживается в Safari и поддерживается с префиксом -webkit-
в Chrome, Opera и других браузерах на основе мигания.
переход (url (white.png), url (black.png), 0%);
переход (url (white.png), url (black.png), 25%);
переход (url (white.png), url (black.png), 50%);
затухание (url (white.png), url (black.png), 75%);
затухание (url (white.png), url (black.png), 100%);
В реализованном синтаксисе сначала объявляются два изображения, разделенных запятыми, за ними следует запятая и требуемое процентное значение.Если пропустить запятую или процент, значение станет недействительным. Процент — это непрозрачность первого объявленного изображения. Включенный процент вычитается из 100% с разницей в непрозрачности второго изображения.
Пример зеленого / красного (с общим процентом 150%) и пример желтого / красного / синего (с тремя изображениями) из раздела синтаксиса спецификации невозможны в этой реализации.
Браузеры не предоставляют никакой специальной информации о фоновых изображениях вспомогательным технологиям.Это важно в первую очередь для программ чтения с экрана, поскольку программа чтения с экрана не сообщает о своем присутствии и, следовательно, ничего не сообщает своим пользователям. Если изображение содержит информацию, важную для понимания общего назначения страницы, лучше описать ее семантически в документе. При использовании фоновых изображений убедитесь, что цветовой контраст достаточно велик, чтобы любой текст был удобочитаемым поверх изображения, а также если изображения отсутствуют.
переходное затухание (, ?), Где = ? && <изображение> = <изображение> | <цвет>, где <изображение> = | <изображение ()> | <набор изображений ()> | | <краска ()> | <плавное затухание ()> | <градиент> <цвет> = | | | | <шестнадцатеричный цвет> | <имя-цвета> | текущий цвет | <устаревшая-система-цвет> где = image (? [?, ?]!) = image-set (< image-set-option> #) = element () = paint (, ?) = крест -fade (, ?) = | <повторяющийся линейный градиент ()> | <радиальный градиент ()> | <повторяющийся радиальный градиент ()> | = rgb (<процент> {3} [/ <альфа-значение>]?) | rgb (<число> {3} [/ <альфа-значение>]?) | rgb (<процент> # {3}, <альфа-значение>?) | rgb (<число> # {3}, <альфа-значение>?) = rgba (<процент> {3} [/ <альфа-значение>]?) | rgba (<число> {3} [/ <альфа-значение>]?) | rgba (<процент> # {3}, <альфа-значение>?) | rgba (<число> # {3}, <альфа-значение>?) = hsl (<оттенок> <процент> <процент> [/ <альфа-значение>]?) | hsl (<оттенок>, <процент>, <процент>, <альфа-значение>?) = hsla (<оттенок> <процент> <процент> [/ <альфа-значение>]?) | hsla (<оттенок>, <процент>, <процент>, <альфа-значение>?), где <теги изображения> = ltr | rtl = | = [ | <строка>] <разрешение> = = linear-gradient ([ | to ]?, ) <повторяющийся-линейный-градиент ()> = повторяющийся-линейный-градиент ([<угол> | до <стороны- или-угла>]?, <список-остановок-цветов>) <радиальный-градиент () > = radial-gradient ([ || ]? [at ]?, ) = повторяющийся-радиальный-градиент ([ || ]? [at ]?, ) = conic-gradient ([от <угол>]? [ в <положение>] ?, <список-прямоугольных-остановок>) <альфа-значение> = <число> | <процент> <оттенок> = <число> | <угол>, где <боковой-или-угловой> = [левый | справа] || [наверх | внизу] <список-цветов-остановок> = [<линейный-цветной-стоп> [, <линейный-цветной-подсказки>]? ] #, <линейная-цветная-остановка> <конечная-форма> = круг | эллипс <размер> = ближайшая сторона | дальняя сторона | ближайший угол | дальний угол | <длина> | <длина-процент> {2} <позиция> = [[слева | центр | справа] || [наверх | центр | внизу] | [слева | центр | право | <длина-процент>] [наверх | центр | внизу | <длина- процент>]? | [[слева | справа] <длина-процент>] && [[вверх | снизу] <процент-длины>]] <список-углов-остановок> = [<цвет-угловых-указателей> [, <угольные-цветные-подсказки>]? ] #, где = ? = = < длина> | <процент> <угловая-цвет-остановка> = <цвет> && <цвет-остановка-угол>? <угловой-цвет-подсказка> = <угол-процент>, где <цвет-остановка-длина> = <длина-процент> {1,2} <цвет-стоп-угол> = <угол-процент> {1,2} <угол-процент> = <угол> | <процент>
Старый синтаксис для плавного перехода
HTML
CSS
.crossfade {
ширина: 300 пикселей;
высота: 300 пикселей;
фоновое изображение: -webkit-cross-fade (
url ('https://mdn.mozillademos.org/files/8543/br.png'),
url ('https://mdn.mozillademos.org/files/8545/tr.png'),
75%);
фоновое изображение: плавное затухание (
url ('https://mdn.mozillademos.org/files/8543/br.png'),
url ('https://mdn.mozillademos.org/files/8545/tr.png'),
75%);
}
Результат
таблиц BCD загружаются только в браузере
Обработка распространенных проблем HTML и CSS — изучение веб-разработки
Это распространенная проблема, особенно когда вам нужно поддерживать старые браузеры (например, старые версии IE) или вы используете функции, которые реализовано с использованием префиксов CSS.В общем, большинство основных функций HTML и CSS (таких как основные элементы HTML, основные цвета CSS и стили текста) работают в большинстве браузеров, которые вы хотите поддерживать; больше проблем обнаруживается, когда вы начинаете хотеть использовать новые функции, такие как Flexbox или HTML5 видео / аудио, или даже более зарождающиеся CSS Grids или -webkit-background-clip: text.
После того, как вы определили список потенциально проблемных технологий, которые вы будете использовать, рекомендуется изучить, в каких браузерах они поддерживаются и какие связанные методы могут оказаться полезными.См. Раздел «Поиск справки» ниже.
Откатное поведение HTML
Некоторые проблемы можно решить, просто воспользовавшись естественным способом работы HTML / CSS.
Нераспознанные элементы HTML обрабатываются браузером как анонимные встроенные элементы (фактически встроенные элементы без семантического значения, аналогичные элементам
). Вы по-прежнему можете ссылаться на них по их именам и стилизовать их, например, с помощью CSS — вам просто нужно убедиться, что они ведут себя так, как вы хотите, например, установив display: block;
на всех новых семантических элементах (например,
, и т. Д.), но только в старых версиях IE, которые их не распознают (например, IE 8 и ниже). Таким образом, новые браузеры могут просто использовать код как обычно, но более старые версии IE также смогут стилизовать эти элементы.
Более сложные элементы, такие как HTML ,
и (а также другие функции), имеют естественные механизмы для добавления резервных вариантов, которые работают по тому же принципу, что и описанный выше. Вы можете добавить резервный контент между открывающим и закрывающим тегами, и не поддерживающие браузеры будут эффективно игнорировать внешний элемент и запускать вложенное содержимое.
Например:
Этот пример включает простую ссылку, позволяющую загрузить видео, если даже видеопроигрыватель HTML5 не работает, поэтому, по крайней мере, пользователь все еще может получить доступ к видео.
Элементы формы HTML5 также обладают резервными качествами — HTML5 представил некоторые специальные типы
для ввода определенной информации в формы, такой как время, даты, цвета, числа и т. Д. Они очень полезны, особенно на мобильных платформах, где предоставляют безболезненный способ ввода данных очень важен для взаимодействия с пользователем. Поддерживающие платформы предоставляют специальные виджеты пользовательского интерфейса при использовании этих типов ввода, такие как виджет календаря для ввода дат.
В следующем примере показаны вводы даты и времени:
<форма>
Вывод этого кода выглядит следующим образом:
Если вы просмотрите пример в поддерживающем браузере, таком как настольный компьютер / Android Chrome или iOS Safari, вы увидите специальные виджеты / функции в действии при попытке ввода данных.На неподдерживаемой платформе, такой как Firefox или Internet Explorer, входные данные просто отключаются к обычному текстовому вводу, поэтому, по крайней мере, пользователь все еще может ввести некоторую информацию.
Примечание. Конечно, это может быть не лучшим решением для нужд вашего проекта — разница в визуальном представлении невелика, к тому же труднее гарантировать, что данные будут введены в том формате, в котором вы хотите. Для кроссбраузерных форм , Вероятно, лучше полагаться на простые элементы формы или выборочно использовать элементы расширенной формы только в поддерживающих браузерах, или использовать библиотеку, которая предоставляет приличные виджеты форм кроссбраузерности, такие как jQuery UI или средство выбора даты Bootstrap.
Резервное поведение CSS
CSS, возможно, лучше справляется с откатами, чем HTML. Если браузер встречает объявление или правило, которое он не понимает, он просто полностью пропускает его, не применяя и не вызывая ошибки. Это может расстроить вас и ваших пользователей, если такая ошибка проскочит в производственный код, но, по крайней мере, это означает, что весь сайт не выйдет из строя из-за одной ошибки, и при грамотном использовании вы можете использовать это в своих интересах.
Давайте посмотрим на пример — простой блок, стилизованный с помощью CSS, который имеет некоторый стиль, обеспечиваемый различными функциями CSS3:
У кнопки есть несколько объявлений этого стиля, но два, которые нам наиболее интересны, следующие:
кнопка {
...
цвет фона: # ff0000;
цвет фона: rgba (255,0,0,1);
box-shadow: вставка 1px 1px 3px rgba (255,255,255,0.4),
вставка -1px -1px 3px rgba (0,0,0,0.4);
}
button: hover {
цвет фона: rgba (255,0,0,0,5);
}
button: active {
box-shadow: вставка 1px 1px 3px rgba (0,0,0,0.4),
вставка -1px -1px 3px rgba (255,255,255,0.4);
}
Здесь мы предоставляем цвет фона RGBA , который изменяет непрозрачность при наведении, чтобы дать пользователю подсказку, что кнопка интерактивна, и некоторые полупрозрачные вставки
box-shadow
оттенков, чтобы придать кнопке немного текстуры и глубина.Проблема в том, что цвета RGBA и тени блоков не работают в версиях IE старше 9 - в более старых версиях фон просто не отображался вообще, поэтому текст был бы нечитаемым, это вообще бесполезно!
Чтобы разобраться в этом, мы добавили второе объявление background-color
, которое просто указывает шестнадцатеричный цвет - это поддерживается еще в действительно старых браузерах и действует как запасной вариант, если современные блестящие функции не работают. Что происходит, когда браузер, посещающий эту страницу, сначала применяет первое значение background-color
; когда он переходит ко второму объявлению background-color
, он заменяет начальное значение этим значением, если оно поддерживает цвета RGBA.В противном случае он просто проигнорирует все объявление и продолжит работу.
IE представляют собой модифицированный собственный синтаксис комментариев HTML, который можно использовать для выборочного применения кода HTML к различным версиям IE. Это оказалось очень эффективным механизмом для исправления кроссбраузерных ошибок. Синтаксис выглядит так:
Этот блок будет применять специфичные для IE CSS и JavaScript, только если браузер, просматривающий страницу, имеет версию IE 8 или более раннюю. lte
означает «меньше или равно», но вы также можете использовать lt, gt, gte, !
для НЕ и другой логический синтаксис.
Как видите, это особенно полезно для применения исправлений кода к старым версиям IE. Сценарий использования, о котором мы упоминали ранее (создание современных семантических элементов, стилизованных в старых версиях IE), может быть легко реализован с помощью условных комментариев, например, вы можете поместить что-то вроде этого в свою таблицу стилей IE:
aside, main, article, section, nav, figure, figcaption {
дисплей: блок;
}
Однако это не так просто - вам также необходимо создать копию каждого элемента, который вы хотите стилизовать в DOM, с помощью JavaScript, чтобы они были стилизованными; это странная причуда, и мы не будем утомлять вас подробностями здесь.Например:
const asideElem = document.createElement ('в сторону');
...
Похоже, что с этим трудно справиться, но, к счастью, есть полифилл, который делает необходимые исправления за вас и многое другое - см. HTML5Shiv для всех деталей (см. Ручную установку для простейшего использования).
Опора селектора
Конечно, никакие функции CSS не будут применяться, если вы не используете правильные селекторы для выбора элемента, который хотите стилизовать! Если вы просто напишете селектор неправильно, чтобы стиль не соответствовал ожиданиям в любом браузере, вам просто нужно устранить неполадки и выяснить, что не так с вашим селектором.Мы считаем, что полезно проверить элемент, который вы пытаетесь стилизовать, с помощью инструментов разработчика вашего браузера, а затем взглянуть на цепочку цепочек дерева DOM, которую инспекторы DOM обычно предоставляют, чтобы увидеть, имеет ли ваш селектор смысл по сравнению с ним.
Например, в инструментах разработчика Firefox вы получаете такой вывод внизу инспектора DOM:
Если, например, вы пытались использовать этот селектор, вы могли бы увидеть, что он не выберет желаемый элемент ввода:
форма> # дата
(ввод формы date
не находится непосредственно внутри ; вам лучше использовать общий селектор потомков вместо дочернего селектора).
Однако другая проблема, которая появляется в версиях IE старше 9, заключается в том, что ни один из новых селекторов (в основном псевдоклассов и псевдоэлементов, таких как : nth-of-type
, : не
, :: selection
) и т. д.) работают. Если вы хотите использовать их в своем CSS и вам нужна поддержка более старых версий IE, хорошим ходом будет использование библиотеки Selectivizr Кейта Кларка - это небольшая библиотека JavaScript, которая работает поверх существующей библиотеки JavaScript, такой как jQuery или MooTools.
- Чтобы попробовать этот пример, сделайте локальную копию selectivizr-example-start.html. Если вы посмотрите на это вживую, вы увидите, что он содержит два абзаца, один из которых стилизован. Мы выбрали абзац с
p: first-child
, который не будет работать в старых версиях IE. - Теперь загрузите MooTools и Selectivizr и сохраните их в том же каталоге, что и образец HTML.
- Поместите следующий код в заголовок вашего HTML-документа непосредственно перед открывающим тегом