百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

CSS小知识,建议这样使用平滑滚动、 hidden属性、resize

toyiye 2024-08-17 23:45 6 浏览 0 评论

转载说明:原创不易,未经授权,谢绝任何形式的转载

当开发 Web 应用时,良好的用户体验是至关重要的。通过使用正确的 CSS 属性和值,我们可以创建易于使用和功能强大的应用程序。然而,在实践中,开发人员经常遇到 CSS 相关的问题,这些问题会导致页面布局混乱、滚动不流畅或者使用户难以理解内容。本文将介绍一些 CSS 最佳实践,帮助您避免这些常见问题,提高 Web 应用的用户体验。

1、"scroll-behavior"属性可能会导致用户头晕或头痛。

scroll-behavior 属性控制网页滚动行为的平滑程度。当设置为 scroll 时,页面将以传统的方式滚动,用户可以看到内容在屏幕上移动。当设置为 smooth 时,页面将更平滑和逐渐滚动,给人以内容在屏幕上滑行或漂浮的印象。

对于一些用户,尤其是对运动敏感的用户来说,smooth 设置可能会导致头晕或头痛。这是因为平滑滚动可以产生微妙的运动,对一些人的大脑来说处理起来可能会很困难,从而导致不适或甚至晕动症。

为了解决这个问题,引入了 prefers-reduced-motion 媒体功能。该功能允许用户在浏览器设置中指定他们偏好减少运动,Web 开发人员可以根据此功能调整其页面的行为。如果用户启用了 prefers-reduced-motion,则 scroll-behavior 的 smooth 设置将被忽略,并且页面将以传统方式滚动,以避免引起不适。

总之,如果不考虑 prefers-reduced-motion 媒体功能,使用 scroll-behavior 属性的 smooth 设置可能会对一些对运动敏感的用户造成不适。重要的是要以体贴所有用户的需求和偏好的方式使用此属性。

2、有了H5标签中的 hidden 属性,尽量少用 display: none

hidden 属性是一个标准的 HTML 属性,可以添加到元素中以指示它应该从视图中隐藏。当 hidden 属性出现在元素上时,浏览器会自动应用 display: none 到该元素,有效地将其隐藏在视图中。

在引入 hidden 属性之前,开发人员通常会使用 display: none 来隐藏页面上的元素。然而,这种方法可能有一些缺点。例如,如果开发人员使用 display:none 来隐藏一个元素,然后稍后尝试使用 JavaScript 再次显示它,他们必须首先将 display 属性更改回其原始值(例如 display:block)。这可能很麻烦且容易出错。

相比之下,隐藏属性简化了这个过程。当元素具有隐藏属性时,浏览器会根据需要负责应用和删除适当的显示值。因此,如果开发人员想要根据某些条件(例如单击按钮)显示或隐藏元素,他们可以简单地切换隐藏属性的存在,而不是直接修改显示属性。 意味着开发人员可以在其 CSS 规则中使用 :not() 伪类来排除具有隐藏属性的元素。

例如,如果开发人员想要将特定样式应用于所有未隐藏的元素,他们可以使用如下规则:

:not([hidden]) {
  /* CSS styles for elements that are not hidden */
}

以下是一个使用使用 hidden 属性根据按钮点击显示或隐藏元素的示例,帮助你更好的理解:

<button id="toggleButton">切换元素可见性</button>
<div id="elementToToggle" hidden>
  这个元素默认情况下将被隐藏,但是可以通过按钮点击进行显示/隐藏。
</div>
const toggleButton = document.getElementById('toggleButton');
const elementToToggle = document.getElementById('elementToToggle');

toggleButton.addEventListener('click', () => {
  elementToToggle.hidden = !elementToToggle.hidden;
});

这个代码示例中,我们首先获取了用于切换元素可见性的按钮和要进行显示/隐藏的元素。然后,我们为按钮添加了一个点击事件监听器,当按钮被点击时,我们使用 hidden 属性来控制元素的可见性。每次按钮被点击时,hidden 属性的值都会被取反,从而切换元素的可见性。

3、不要使用 resize: none

resize CSS 属性用于控制用户调整元素大小的能力。默认情况下,textarea 元素可以被用户调整大小,这在某些情况下可能很有用,但如果您想保持固定的布局,则可能会成为问题。(比如手机等触屏设备,造成不好的用户体验)

过去,开发人员经常使用 resize: none 属性值完全禁用 textarea 元素的调整大小功能。然而,这可能会导致用户感到不适,因为他们可能想要调整元素以获得更好的可读性或可用性。

更好的方法是使用 resize: vertical 属性值,它允许用户仅在垂直方向(即上下方向)调整 textarea 元素的大小。这可以是在给用户控制布局和维护固定设计之间的一个很好的平衡点。

为了限制 textarea 元素的高度并防止无限扩展,您可以在其上设置 max-height 属性。例如,如果您想将 textarea 的高度限制为200像素,则可以使用以下 CSS:

textarea {
  resize: vertical;
  max-height: 200px;
}

这将允许用户垂直调整 textarea 元素的大小,但会防止其超出200像素的高度。

总结

当开发 Web 应用时,使用正确的 CSS 属性和值可以显著提高用户体验并减少问题和不必要的麻烦。在本文中,我们讨论了一些有关 CSS 的最佳实践,包括使用 hidden 属性来隐藏元素、使用 resize: vertical 属性值来限制 textarea 元素的高度调整以及使用 scroll-behavior 属性来平滑地滚动页面。通过遵循这些最佳实践,您可以创建更具可用性和易用性的 Web 应用程序,从而提供更好的用户体验。

今天的CSS小知识就分享到这里,希望对你有所帮助,感谢你的阅读,文章创作不易,如果你喜欢我的分享,别忘了点赞转发,让更多的人看到,最后别忘记关注「前端达人」,你的支持将是我分享最大的动力,后续我会持续输出更多内容,敬请期待。

https://medium.com/@stasmelnikov/the-3-short-september-css-tips-2aae8ec85bfa
作者:Stas Melnikov

非直接翻译,有自行改编和添加部分,翻译水平有限,难免有疏漏,欢迎指正

相关推荐

# Python 3 # Python 3字典Dictionary(1)

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如...

Python第八课:数据类型中的字典及其函数与方法

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值...

Python中字典详解(python 中字典)

字典是Python中使用键进行索引的重要数据结构。它们是无序的项序列(键值对),这意味着顺序不被保留。键是不可变的。与列表一样,字典的值可以保存异构数据,即整数、浮点、字符串、NaN、布尔值、列表、数...

Python3.9又更新了:dict内置新功能,正式版十月见面

机器之心报道参与:一鸣、JaminPython3.8的热乎劲还没过去,Python就又双叒叕要更新了。近日,3.9版本的第四个alpha版已经开源。从文档中,我们可以看到官方透露的对dic...

Python3 基本数据类型详解(python三种基本数据类型)

文章来源:加米谷大数据Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的"类型"是变...

一文掌握Python的字典(python字典用法大全)

字典是Python中最强大、最灵活的内置数据结构之一。它们允许存储键值对,从而实现高效的数据检索、操作和组织。本文深入探讨了字典,涵盖了它们的创建、操作和高级用法,以帮助中级Python开发...

超级完整|Python字典详解(python字典的方法或操作)

一、字典概述01字典的格式Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。字典的每个键值key=>value对用冒号:分割,每个对之间用逗号,...

Python3.9版本新特性:字典合并操作的详细解读

处于测试阶段的Python3.9版本中有一个新特性:我们在使用Python字典时,将能够编写出更可读、更紧凑的代码啦!Python版本你现在使用哪种版本的Python?3.7分?3.5分?还是2.7...

python 自学,字典3(一些例子)(python字典有哪些基本操作)

例子11;如何批量复制字典里的内容2;如何批量修改字典的内容3;如何批量修改字典里某些指定的内容...

Python3.9中的字典合并和更新,几乎影响了所有Python程序员

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

Python3大字典:《Python3自学速查手册.pdf》限时下载中

最近有人会想了,2022了,想学Python晚不晚,学习python有前途吗?IT行业行业薪资高,发展前景好,是很多求职群里严重的香饽饽,而要进入这个高薪行业,也不是那么轻而易举的,拿信工专业的大学生...

python学习——字典(python字典基本操作)

字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值...

324页清华教授撰写【Python 3 菜鸟查询手册】火了,小白入门字典

如何入门学习python...

Python3.9中的字典合并和更新,了解一下

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

python3基础之字典(python中字典的基本操作)

字典和列表一样,也是python内置的一种数据结构。字典的结构如下图:列表用中括号[]把元素包起来,而字典是用大括号{}把元素包起来,只不过字典的每一个元素都包含键和值两部分。键和值是一一对应的...

取消回复欢迎 发表评论:

请填写验证码