Что касается внешнего интерфейса, ежедневная разработка полна проблем и развлечений, и мы делаем все возможное, чтобы улучшить взаимодействие с пользователем в странных условиях. В этой статье будут перечислены некоторые нишевые требования, возникающие при фронтенд-разработке, и приведены решения для справки.
1. Измените значок жеста мыши
Многие детские туфли могли использовать:
cursor: pointer | wait | hand | text | move | not-allowed;
Тем не менее, он также поддерживает пользовательское изображение, вы знаете?
cursor: url(jartto.cur), url(http://jartto.wang/jartto.gif), auto;
На следующем рисунке показана поддержка каждого браузера:
Не забудьте добавить общие курсоры в конце после определения пользовательских курсоров, если курсоры, определенные этими URL-адресами, нельзя использовать.
Подробная инструкция здесь:
1.Необязательное значение для курсора css (различные стили мыши)
2.Using URL values for the cursor property
Два, коробчатая тень, трехсторонняя тень
box-shadow
Все знакомы с ним, мы обычно используем его так:
box-shadow: h-shadow v-shadow blur spread color inset;
Но как настроить трехстороннюю тень? Пожалуйста, не игнорируйте мозговую дыру дизайнера🙈:
#shadowBox {
background-color: #ddd;
margin: 0px auto;
padding: 10px;
width: 220px;
box-shadow: 0px 8px 10px gray,
-10px 8px 15px gray, 10px 8px 15px gray;
}
Может быть, вы можете использовать его, пожалуйста, обратитесь к:CSS box-shadow on three sides of a div?
3. Супер простой в использовании currentColor
Давайте сначала возьмем пример, html-код:
<a href="##" class="link"><i class="icon"></i>返回</a>
css-код:
.icon {
display: inline-block;
width: 16px;
height: 20px;
background-image: url(http:jartto.wang/test.png);
background-color: currentColor; /* 该颜色控制图标的颜色 */
background-position: 0 0;
}
.link:hover {
color: #333; /* 虽然改变的是文字颜色,但是图标颜色也一起变化了 */
}
currentColor означает "цвет текста, унаследованный текущей меткой"
Для получения дополнительной информации см.:CSS3 Super High School School Легко использовать переменные CSS
В-четвертых, как изменить цвет изображений png
Большинство веб-страниц используют прозрачные изображения.png
Формат, но если однажды продакт-менеджер сказал, можно ли изменить цвет этой иконки на красный, а дизайнер не может вас поддержать, что делать?
1-й: заново изобрести себяps
Нажмите на картинку, измените цвет;
Во-вторых: только наsvg
Эй, сделай этоicon font
;
Вот, давайте поговорим о третьем способе, вы можете попробовать, хорошо это или нет!
.icon {
display: inline-block;
width: 20px;
height: 20px;
overflow: hidden;
}
.icon-del {
background: url(delete.png) no-repeat center;
}
.icon > .icon {
position: relative;
left: -20px;
border-right: 20px solid transparent; /*下文注意点 2 有解释*/
-webkit-filter: drop-shadow(20px 0);
filter: drop-shadow(20px 0);
}
html-код:
<p><strong>原始图标</strong></p>
<i class="icon icon-del"></i>
<p><strong>可以变色的图标</strong></p>
<i class="icon"><i class="icon icon-del"></i></i>
Несколько замечаний:
1. Для прозрачного фонаpng
Для маленьких значков, если мы применяем проекцию без размытия, это эквивалентно созданию маленького значка другого цвета;
2. Вchrome
В браузере, если тело элемента каким-либо образом не видно на странице, егоdrop-shadow
невидим. Даже если физическая часть1px
видно, тоdrop-shadow
полностью видно.
css3
фильтрfilter
серединаdrop-shadow
,drop-shadow
Фильтры могут добавлять тени к элементам или непрозрачным областям изображения.Для получения дополнительной информации см.:
1.CSS технология присвоения произвольного цвета маленьким иконкам в формате PNG
2.демо демо
5. вх и вв
Относительно ширины области просмотра. Окна просмотра делятся на100
Единицыvw
,vh
То же самое справедливо.Я обычно использую его, когда заставляю контейнер занимать весь экран, например:
.box{
height: calc(100vh - 50px);
}
Высота области просмотра вычитается из фиксированной области заголовка, а оставшаяся высота задается контейнером. Конечно, мы также можем использовать его для установки размера следующим образом:
h1 {
font-size: 8vw;
}
Если ширина области просмотра200mm
, тогда размер шрифта в коде выше будет h1 элемент16mm
, то есть (8x200)/100
Примечательно,less
нужно добавить~
min-height: ~"calc(100vh - 68px)";
Кроме того, есть некоторыеch
,vmax
,vmin
Недвижимость ждет, когда вы расширитесь. Чтобы узнать подробности, перейдите по ссылке:css справочник по vw
6. Как убрать желтый фон хромированного ввода
Когда мы делаем целевую страницу, вchrome
серединаinput
Он принесет автозаполнение желтого фона, что сильно влияет на внешний вид. Многие сайты не имеют с этим дело, но с этим не так уж сложно справиться. Здесь может быть отражена ваша ценность, как высококлассного фронтенда.Решения заключаются в следующем:
input:-webkit-autofill {
-webkit-box-shadow: 0 0 0px 1000px rgba(255, 255, 255, 0.5) inset !important;
}
Конечно, вы также можете использовать второй вариант, как показано ниже:
input:-webkit-autofill {
-webkit-animation-name: autofill;
-webkit-animation-fill-mode: both;
}
@-webkit-keyframes autofill {
to {
color: #fff;
background: transparent;
}
}
Для получения дополнительной информации перейдите по ссылке:
1.Автозаполнение формы Chrome удалить входное желтое фоновое решение
2.Removing input background colour for Chrome autocomplete
7. Установите шрифты размером менее 12 пикселей в Chrome
Этот вид небольшого изменения шрифта, большая часть которого должна соответствовать потребностям дизайнеров, потому что маленький размер выглядит деликатно.
ant-checkbox-wrapper {
cursor: pointer;
font-size: 10px;
display: inline-block;
-webkit-text-size-adjust: none; // 不支持
transform: scale(0.9);
}
Восемь, граница 0,5px, как работать
Текущие методы примерно таковы:
1. Используйте градиентыlinear-gradient
работать, но вам необходимо обратить внимание на префикс совместимости браузера;
.div::after {
content: " ";
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 1px;
background-image: linear-gradient(0deg, transparent 50%, #e0e0e0 50%);
}
2. Масштабscale
иметь дело с:
div::after{
content: "";
display: block;
position: absolute;
left: -50%;
bottom: 0;
width: 200%;
height: 1px;
background: #c3c3c3;
-webkit-transform: scale(0.5);
}
3. Используйтеbackground-image
а такжеcss3
Jiugongge разрез
.bd-t::after {
content: " ";
position: absolute;
left: 0;
top: 0;
width: 100%;
border-top: 1px solid transparent;
/* 下面用 stretch 和 round 都可以 */
border-image: url('pic.png') 2 1 1 1 stretch;
-webkit-border-image: url('pic.png') 2 1 1 1 stretch;
}
Для более глубокого понимания, пожалуйста, обратитесь к:
1.Тонкая линия 0,5px с использованием css3
2.Внедрение границы 0,5px на мобильных страницах
Девять, градиент цвета границы
border-color:red green blue pink;
Свойство "border-width" не действует, если используется отдельно. Пожалуйста, используйте свойство "border-style", чтобы сначала установить границу.
Десять, css3 рисует маленькие стрелки
Здесь рекомендуются два метода:
Во-первых, через границу для достижения
/*箭头向上*/
.arrow-up {
width:0;
height:0;
border-left:30px solid transparent;
border-right:30px solid transparent;
border-bottom:30px solid #fff;
}
/*箭头向下*/
.arrow-down {
width:0;
height:0;
border-left:20px solid transparent;
border-right:20px solid transparent;
border-top:20px solid #0066cc;
}
Во-вторых, пэчворк (псевдокласс или элемент) будетdiv
скрыть стороны или настройкиz-index
, а затем поверните его в подходящее положение.
div {
position: absolute;
bottom: -2px;
left: 7px;
width: 10px;
height: 10px;
transform: rotate(-45deg);
z-index: -1; /* 放在容器后,被遮盖住*/
}
Это относительно просто, поэтому я не буду вдаваться в подробности.
11. Интересная тень
Использование заключается в следующем:
filter: drop-shadow(x偏移, y偏移, 模糊大小, 色值);
filter:drop-shadow(5px 5px 10px black)
Тень в фильтре фильтра CSS3, фильтр тени может добавить тень к непрозрачной области элемента или изображения.
Выше был упомянут один сценарий использования, а здесь я хочу рассказать о другом, а именно о маленьких пузырьках, сделанных лоскутным шитьем.Если пузырькам нужны тени, пожалуйста, используйтеdrop-shadow
заменитьbox-shadow
.
Для получения более подробной информации см.:Фильтр drop-shadow применяется иначе, чем box-shadow.
12. Измените полосу прокрутки браузера по умолчанию.
Иногда некоторые неожиданные полосы прокрутки делают страницу очень неловкой. В это время вы также можете принудительно украсить ее. Код ссылки выглядит следующим образом:
/*滚动条 start*/
::-webkit-scrollbar {
width: 1px;
height: 4px;
background-color: #F5F5F5;
}
/*定义滚动条轨道 内阴影+圆角*/
::-webkit-scrollbar-track {
box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
background: #fff ;
}
/*定义滑块 内阴影+圆角*/
::-webkit-scrollbar-thumb {
border-radius: 3px;
box-shadow: inset 0 0 6px rgba(0,0,0,.3);
// background-color:rgba(7, 170, 247, 0.7);
background-color: transparent;
}
::-webkit-scrollbar-thumb:hover {
border-radius: 3px;
box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color:rgba(7, 170, 247, 1);
}
Для получения подробной информации см.:Изменить стиль полосы прокрутки браузера по умолчанию
Тринадцать, ошибки заполнителя сафари
встретились в проектеinput
изplaceholder
существуетsafari
Проблема установки высоты строки ниже решается следующим образом:
1. Используйтеpadding
Составьте текст подсказки, еслиfont-size:14px
, UI
высота40px
, мы можем установитьheight:14px,padding:13px 0;
2. Используйтеline-height:1px;
3. Используйтеvertical-align: middle;
Добавьте один: Safari для написания хака, т.е. [;line-height:1;]
Для получения подробной информации см.:Заполнитель ввода недопустим для установки высоты строки в сафари.
14. Резюме
Это все странные проблемы, с которыми я сталкивался в своей ежедневной разработке.Оглядываясь назад, это было на самом деле довольно интересно, поэтому я разобрался с ними. Что интересного в разработке без каких-либо проблем в повседневной разработке.