返回顶部
首页 > 资讯 > 前端开发 > node.js >怎么用CSS来美化滑动输入条
  • 896
分享到

怎么用CSS来美化滑动输入条

2024-04-02 19:04:59 896人浏览 安东尼
摘要

这篇文章主要为大家展示了“怎么用CSS来美化滑动输入条”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用CSS来美化滑动输入条”这篇文章吧。关于原生 inpu

这篇文章主要为大家展示了“怎么用CSS来美化滑动输入条”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用CSS来美化滑动输入条”这篇文章吧。

关于原生 input range 滑动输入条如何自定义样式一直都是我心里的一道坎,一般情况下,可以很轻易的美化到这个程度。

怎么用CSS来美化滑动输入条

为什么很容易呢?因为这些都是有对应的伪元素可以修改的

::-WEBkit-slider-container {
  
}
::-webkit-slider-runnable-track {
  
}
::-webkit-slider-thumb {
  
}

可是,偏偏没有已滑过部分的样式,如果要定义下面这样的样式,单纯的 CSS 可能没办法实现了

怎么用CSS来美化滑动输入条

注意:Firefox 有单独的伪类可以修改,本文讨论的是 Chrome 实现方案

一、我的实现思路

既然没有专门的伪元素可以修改已滑过部分的颜色,而且只有滑块是可动的,是不是可以在滑块上下手呢?

假设滑块左边有一个矩形,是跟随滑块一起的,

怎么用CSS来美化滑动输入条

当这个矩形足够长时,能够完全覆盖左边的轨道,在可视范围内,是不是就可以表示左边的已滑过部分了呢?示意如下(左边半透明表示滑动条之外)

怎么用CSS来美化滑动输入条

尝试过伪元素的想法,像这样

::-webkit-slider-thumb::after{
  
}

可惜,伪元素里并不能再次生成伪元素。

所以,如何在元素之外绘制一个矩形呢?

二、通过 border-image 在元素之外绘制图形

有哪些方式可以在元素之外绘制图形呢?想了一下,有 box-shadowoutline,但是好像并不适合这种情况,我们需要绘制的是一个尺寸可控的矩形,而这两种方式都不能很好地控制形状。那还有其他方式吗?

还真有!前两天刚看到张鑫旭老师的一篇文章:被低估的border-image属性,其中有一个特性就是在元素之外构建图像,并且不占据任何空间。赶紧试试,这里绘制一个宽度为99vw的矩形(足够覆盖滑动条就行了),代码如下

::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: #f44336;
    border: 1px solid transparent;
    margin-top: -8px;
    border-image: linear-gradient(#f44336,#f44336) 0 fill / 8 20 8 0 / 0 0 0 99vw; 
}

效果如下

怎么用CSS来美化滑动输入条

注意几点:

  • border-image 要想生效,必须指定border,这里设置的是border: 1px solid transparent;

  • 矩形是通过线性渐变绘制的 linear-gradient(#f44336,#f44336)

  • border-image 中8 20 8 0表示border-image-width,距离上、右、下、左的距离,由于滑块自身大小是 20 * 20,所以这个可以确定高度是 4 (20 - 8- 8),位置是滑块自身的最左边(距离右边是20)

  • border-image 中 0 0 0 99vw表示 border-image-outset扩展大小,这里指的是向左扩展99vw的距离

接下来通过overflow:hidden隐藏外面的部分就可以了

::-webkit-slider-container {
    
    overflow: hidden;
}

怎么用CSS来美化滑动输入条

完整代码可以访问:input range

https://codepen.io/xboxyan/pen/YzERZyE

下面附上完整代码(最近codepen貌似不太稳定)

[type="range"] {
    -webkit-appearance: none;
    appearance: none;
    margin: 0;
    outline: 0;
    background-color: transparent;
    width: 500px;
}
[type="range"]::-webkit-slider-runnable-track {
    height: 4px;
    background: #eee;
}
[type="range" i]::-webkit-slider-container {
    height: 20px;
    overflow: hidden;
}
[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: #f44336;
    border: 1px solid transparent;
    margin-top: -8px;
    border-image: linear-gradient(#f44336,#f44336) 0 fill / 8 20 8 0 / 0px 0px 0 2000px;
}

三、还是有一些局限

上面的实现成本其实是很低的,相比常规的实现基础上,仅仅增加了1行用于绘制元素之外的矩形。

border-image: linear-gradient(#f44336,#f44336) 0 fill / 8 20 8 0 / 0px 0px 0 2000px;

但是,由于是通过超出隐藏的方式裁剪掉多出的部分,使得滑动条边缘是“一刀切”的,所以,如果要求滑动条带有圆角,这种实现方式就不行了

怎么用CSS来美化滑动输入条

以上是“怎么用CSS来美化滑动输入条”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网node.js频道!

--结束END--

本文标题: 怎么用CSS来美化滑动输入条

本文链接: https://lsjlt.com/news/94792.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用CSS来美化滑动输入条
    这篇文章主要为大家展示了“怎么用CSS来美化滑动输入条”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用CSS来美化滑动输入条”这篇文章吧。关于原生 inpu...
    99+
    2024-04-02
  • Vue怎么实现双向滑动输入条
    这篇“Vue怎么实现双向滑动输入条”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue怎么实现双向滑动输入条”文章吧。效果图...
    99+
    2023-06-29
  • 怎么在css中隐藏滑动条
    这期内容当中小编将会给大家带来有关怎么在css中隐藏滑动条,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先,如果需要隐藏滚动条并在内容溢出时显示滚动条,只需要设置overflow:auto样式即可。想要...
    99+
    2023-06-15
  • css美化框怎么用
    css美化框是一种css属性,用于在网页元素周围添加边框样式,以提升视觉效果和增强页面可用性。其使用语法为:border: style width color;,其中style设置边框样...
    99+
    2024-05-23
    css css属性
  • css滚动条怎么使用
    css 滚动条允许用户在超出容器的内容上滚动,并可以通过以下属性进行控制:overflow-x:控制水平滚动条overflow-y:控制垂直滚动条此外,滚动条还可通过 css 进行自定义...
    99+
    2024-05-23
    css overflow
  • CSS怎么实现导航固定的、左右滑动的滚动条
    这篇文章主要介绍了CSS怎么实现导航固定的、左右滑动的滚动条,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。如上效果的导航,导航是固定在顶部的,可以左右滑动点击更多选项的。这种...
    99+
    2023-06-08
  • 怎么使用纯css美化select
    这篇文章主要介绍“怎么使用纯css美化select”,在日常操作中,相信很多人在怎么使用纯css美化select问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用纯css...
    99+
    2024-04-02
  • 怎么用CSS美化下拉框
    本篇内容主要讲解“怎么用CSS美化下拉框”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用CSS美化下拉框”吧! 初始化  经过的下拉展示...
    99+
    2024-04-02
  • css怎么使用滚动条来显示元素内溢出的内容
    要给元素添加滚动条以显示溢出的内容,可以使用CSS的overflow属性。例如,如果要在元素内部添加垂直滚动条,可以将元素的over...
    99+
    2023-10-12
    css
  • 怎么用CSS和Div美化select样式
    本篇内容主要讲解“怎么用CSS和Div美化select样式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用CSS和Div美化select样式”吧!来直接看这...
    99+
    2024-04-02
  • 怎么用css实现动态弧形线条长短变化的Loading动画
    本篇内容介绍了“怎么用css实现动态弧形线条长短变化的Loading动画”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能...
    99+
    2024-04-02
  • 怎么用CSS美化被选中的文字
    这篇文章主要介绍“怎么用CSS美化被选中的文字”,在日常操作中,相信很多人在怎么用CSS美化被选中的文字问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用CSS美化被选中的...
    99+
    2024-04-02
  • 怎么用css给tbody加垂直滚动条
    这篇文章主要介绍“怎么用css给tbody加垂直滚动条”,在日常操作中,相信很多人在怎么用css给tbody加垂直滚动条问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用c...
    99+
    2024-04-02
  • 怎么使用CSS隐藏元素滚动条
    这篇文章给大家分享的是有关怎么使用CSS隐藏元素滚动条的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。如何隐藏滚动条,同时仍然可以在任何元素上滚动?首先,如果需要隐藏滚动条并在内容溢出时显示滚动条,只需要设置ove...
    99+
    2023-06-08
  • 怎么使用pace.js美化网站加载进度条
    这篇“怎么使用pace.js美化网站加载进度条”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用pace.js美化网站加...
    99+
    2023-06-29
  • HTML/CSS文本输入框属性怎么用
    这篇“HTML/CSS文本输入框属性怎么用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“H...
    99+
    2024-04-02
  • CSS怎么使用图片美化菜单效果
    这篇文章主要讲解了“CSS怎么使用图片美化菜单效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS怎么使用图片美化菜单效果”吧!本文实例讲述了CSS使用...
    99+
    2024-04-02
  • 怎么使用CSS给tbody加垂直滚动条
    这篇文章主要介绍了怎么使用CSS给tbody加垂直滚动条,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。   思路就是   1,把tbod...
    99+
    2024-04-02
  • css怎么实现滚动条不占用高度
    本教程操作环境:Windows10系统、CSS3版、DELL G3电脑css:overlay使滚动条不占据位置css怎么实现滚动条不占用高度?原始代码:overflow-x: auto;原始效果:滚动条占了高度,位于表格的下方。 改动后的代...
    99+
    2023-05-14
    css 滚动条
  • 怎么用css实现不随滚动条效果
    CSS中的position属性可以用来设置元素在页面中的定位方式,其中有一个值叫做fixed。fixed值指定的元素会被固定在页面的某个位置,不会随着页面的滚动而移动,这就实现了CSS不随滚动条的效果。那么在哪些情况下需要使用CSS不随滚动...
    99+
    2023-05-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作