发这个贴的目的只是很难理解,在项目中使用语义化标签成为区别屎不屎山和水平高低的标准?并不是说语义化不重要。但是这也是要看项目的需求吧。更不是用来抨击别人的点。
个人表示js才是前端的核心,前端的卷是在于技术迭代更新的快(工程化、node、跨端、图形可视化等等)。当一个需求,新人一个插件三行代码解决,而身为老人的你在啪唧啪唧的几百行的脚本代码,到底是谁水?
主要是某篇帖子,让我想起了我司的某些老前端扣新人代码扣不出毛病,搁那里扯颜色,间距、字体...的毛病。真的很恶心。前端这行绝对不是工作时间越长,技术越好的行业。新人不一定就比老人差。保持谦卑,不断学习才是最重要的。
1 catch 2024-06-26 21:41:22 +08:00 我不用 |
![]() | 2 amlee 2024-06-26 21:46:01 +08:00 ![]() 理那些口嗨的人干嘛,喊着规范,糊着屎山,面向 leader 编程就对了,交活万事大吉 |
![]() | 3 gongym 2024-06-26 21:47:11 +08:00 什么情况下会写 html 啊。大部分时间都是用 ui 库写模板吧。但是模板又有多少是需要语义化呢 |
![]() | 4 koor 2024-06-26 21:48:39 +08:00 一般看心情,但是点击事件一定会用<a>和<button>,有意义的图片会写 alt |
![]() | 5 buf1024 2024-06-26 21:51:28 +08:00 用不用都是一坨,没什么意义。 |
![]() | 6 xiaoming1992 2024-06-26 21:58:08 +08:00 我现在用 mui ,不自觉得就注意语义化和 a11y 了。 |
7 renmu 2024-06-26 21:58:15 +08:00 via Android 标题会用 h1 ,链接会有意识用 a 标签,图标会加上 title 属性,按钮会用 button ,我也仅限于此了 |
8 fwh 2024-06-26 22:15:10 +08:00 https://conf.juejin.cn/xdc2024/ 稀土开发者大会 2024 网站 , 里面的链接和按钮都是用的 div,用户体验极差,点击跳转后,在当前页面跳转的,返回后状态都丢失,如果是用 a 标签做跳转,就可以用鼠标中键,或者 ctrl+左键,起码可以自己控制在新窗口打开。 |
9 z0ffy 2024-06-26 22:17:04 +08:00 div 一把梭,垃圾项目,不值得费这么多事 |
![]() | 10 Felldeadbird 2024-06-26 22:21:32 +08:00 模块化的前端下,语义化感觉并不是很强需求。 header,nav,main,footer 这些在 JQ 年代还是很好的。现在 VUE 下,除了 UI 库提供布局,大部分时间 div + 基础标签处理了。甚至来说,a 标签的作用都少了。 |
11 TimG 2024-06-26 22:31:15 +08:00 via Android ![]() 会用 h1 、a 、图片绑 alt ,其他的几乎不用。主要是总下意识觉得在什么奇怪版本的浏览器会有坑。另外有个古怪的 div 洁癖,就是文本一定会套 span 再进 div 。自己说不上有什么用,但是不套 span 直接写就有种指甲划光盘、铁铲耙不粘锅的痛苦。 |
![]() | 12 k9982874 2024-06-26 22:39:08 +08:00 via Android 图片 img ,链接 a 标签,按钮 button ,段落 p 标签什么的不都是几十年前的标准了吗? 现在前端都 div 一把梭了?还发明出个新名词,讨论有没有必要? 前端开发已经魔怔到这种地步了? |
![]() | 13 ccbikai PRO |
![]() | 14 AV1 2024-06-26 22:53:47 +08:00 ![]() 用组件库吧,组件库用了==我用了 |
![]() | 15 duan602728596 2024-06-26 23:47:04 +08:00 有可能考虑到兼容性。还有就是 js 开发的比重太大了,html 、css 等等被认为“无关紧要”的东西都被忽略掉了。 不过 jd 和 weibo 可以用键盘操作,还是考虑了一些的。 至于为什么注重,就是怕网站负优化,各种反人类的交互。 |
![]() | 16 wakarimasen 2024-06-27 01:07:28 +08:00 ![]() 先表明立场:原则上我是非常乐意为了残障人士做些适配的,但是倘若老板不为这些多出来的工时给我加一分钱工资的话,我却还这么做,那么我才是残障人士。 |
![]() | 17 DeWjjj 2024-06-27 01:15:42 +08:00 ![]() 很少,尤其是 react 中。 基本只有四个 sidebar header footer main 外加若干个<h1> <span>和<p> 以及必备的 div input button 其他基本不用。 |
18 leo72638 2024-06-27 01:28:57 +08:00 via iPhone ![]() 我会用,和做什么项目无关,起码的自我要求 |
19 noahlias 2024-06-27 01:36:12 +08:00 htmx? |
![]() | 20 BeiChuanAlex 2024-06-27 03:22:09 +08:00 啥是语义化 html ? |
![]() | 21 IvanLi127 2024-06-27 08:18:59 +08:00 用一部分常用的,不全为了 UA 用,用它也是为了代码看起来结构清晰些。更全的那些就靠 ui 库的语义化做得怎么样了。 |
![]() | 22 luzemin 2024-06-27 08:55:15 +08:00 @BeiChuanAlex 就是使用语义明确的 html tag ,让人一看就知道做什么的。比如内容使用<article>,侧边使用<aside> |
23 huihushijie1996 2024-06-27 09:00:48 +08:00 title span p h a 等标签还是会用的 不过还是 div 居多 |
![]() | 24 twofox 2024-06-27 09:05:07 +08:00 div 一把梭哈 |
![]() | 25 songray 2024-06-27 09:07:25 +08:00 坚持语义化标签的公司: https://37signals.com/ 现代前端拆分了逻辑的最小块, 其意义也可以从组件名推断, 所以对 html 标签表达逻辑的需求小了很多. |
![]() | 26 yuhaofe 2024-06-27 09:10:03 +08:00 如果是项目肯定还是根据实际需求来,就算不是真的为了无障碍,官网、博客类的项目使用语义化也是有意义的,至少对塑造企业、个人品牌形象是有帮助的。至于互联网服务,口碑没有太大意义,为了获取某些独家服务、内容也还是不得不用,语义化对他们来说可能就是徒增成本。 |
![]() | 27 yuhaofe 2024-06-27 09:18:41 +08:00 说到底语言也只是工具,先有了需求再说怎么做,而不是因为规范里有这个东西我就要去用,而且无障碍支持就跟道德一样,是用来约束自己而不是拿来抨击别人的,因为别人支持无障碍去反对他们更是倒反天罡 |
28 jguo 2024-06-27 09:23:21 +08:00 ![]() 大部分人变道还不打灯呢。顺手就能做好的事,没那意识就承认自己不行,非要找各种理由。 |
![]() | 29 Baymaxbowen 2024-06-27 09:23:29 +08:00 toB 的业务根本就不需要使用 |
![]() | 30 asLw0P981N0M0TCC 2024-06-27 09:27:01 +08:00 @fwh 确实不咋地 和 vue 那个比起来 |
![]() | 31 MrDarnell 2024-06-27 09:29:10 +08:00 语义化主要是给机器读的,尤其是搜索引擎,我现在基本不会面向搜索引擎开发了,所以不在乎语义化的问题! |
32 zy0829 2024-06-27 09:29:56 +08:00 前端开发都用 ui 组件库,组件库很少用语义化的标签 |
33 Xu3Xan89YsA7oP64 2024-06-27 09:31:03 +08:00 之前学 nextjs 的互动教程的时候,里面也提到了你说的这 2 个课程,还提到个 eslint 插件 eslint-plugin-jsx-a11y 。我是不会学的,除非公司硬性要求。这需要顶层设计,你这个开发想用不想用一点都不重要 |
34 jguo 2024-06-27 09:31:45 +08:00 ![]() 一个明显是导航的区域用 nav 比用 div 会多花一秒钟时间吗?不这么做只有两种原因,要么不知道 nav 标签,要么敲下三个字母前没考虑元素的作用。不论是哪种原因,本质上都是水平不行。 |
![]() | 35 marcong95 2024-06-27 09:32:18 +08:00 ![]() 你既然知道这个东西,顺手用上也不难吧,又不是让你多花时间弄 aria 那种 看楼上态度,现在流行的是连 h1-h6 p span 乃至 a button 也用 div 代替?那活该被喷屎山 @k9982874 开喷之前麻烦把「语义化标签」贴到搜索引擎搜一下 |
![]() | 36 me1onsoda 2024-06-27 09:36:50 +08:00 ![]() 有点后端 restful 内味 |
![]() | 37 Yanlongli 2024-06-27 09:41:27 +08:00 ![]() 三个标签打天下:div 、a 、input |
39 test4zhou 2024-06-27 09:43:06 +08:00 一方面是 html 语言方面实现的语义化标签,但是不同浏览器之间解析的问题,样式不统一 另一方面是编码规范上的语义化。统一用 div ,class 命名语义法 |
![]() | 40 kissmenow 2024-06-27 09:48:32 +08:00 section 很少用,header footer aside 用的多,无意识的就用上了 |
42 wyl986 2024-06-27 09:57:21 +08:00 ![]() 浏览器解析样式不统一?十几年前就有解决方案了 [normalize.css]( https://necolas.github.io/normalize.css/) |
43 x2ve 2024-06-27 10:03:03 +08:00 感觉现在的前端都好大,带宽小能加载好久;开发倒是比较爽 |
![]() | 44 qW7bo2FbzbC0 2024-06-27 10:17:50 +08:00 @TimG 文本不是应该用<p>吗 |
45 dd0754 2024-06-27 10:21:39 +08:00 div 一把梭~ |
![]() | 46 bladeRunner2049 2024-06-27 10:34:44 +08:00 语义化标签好像就用了这三个 header section footer ,其他基本都是 div |
![]() | 48 ciaoca 2024-06-27 10:39:58 +08:00 纯表现形式的 标题不用 h1~h6 ,用 <div class="title"> ? 列表不用 ul / ol ,用 <div class="list"> ? 按钮不用 button ,用 <div class="button"> ? 用内容不用 blockquote ,用 <div class="blockquote"> ? 代码展示不用 pre / code ,用 <div class="code"> ? 常规表格不用 table ,用 <div class="table"> ? 重点字词不用 em / strong ,用 <span class="strong"> ? 删除线文字不用 del ,用 <span class="delete"> ? 交互形式的 <form> 标签内的任意输入框 / 下拉框按回车,就能提交表单(表单验证做不好,不想要这种特性,故 <div class="form">) <button type="submit"> 提交表单按钮 <button type="reset"> 表单重置按钮 <input> / <select> / <textarea> / <button>,tab 键切换 / 手机键盘上下一项切换 以上仅仅是个人比较常用的标签,仍有很多语义标签因为未涉及到具体场景没有用到。 |
![]() | 49 yKXSkKoR8I1RcxaS 2024-06-27 10:40:36 +08:00 后端,写前端时严格要求使用语义化标签。 工作是外贸方面的,很在意 Google 优化,还有各种无障碍。 |
![]() | 51 keithwhisper 2024-06-27 10:48:50 +08:00 做开源项目, 会坚持语义化, 不仅自己看代码会有逻辑性, 未来扩展(到其他平台)也方便. 要求合作者用基础的语义化 以前面试的时候, 语义化必问, 很少有人能满足要求, 只有在苹果工作过的一个 web 开发者是到了我想要的线的 |
53 flytsuki 2024-06-27 10:59:06 +08:00 全是 div |
![]() | 55 94 2024-06-27 11:03:11 +08:00 section 的定义本来就有一些模糊。喷没有语义化的多半都是因为按钮、链接都是使用 div 来模拟的吧。那确实会有很多问题,没办法脱离鼠标来完成对应的操作。 至于无障碍性(a11y)是在 html 语义化之上为障碍人士做的更进一步。就比如大部分人提到的 div 一把梭中使用模拟按钮,就没办法使用空格/回车或者一些辅助设备来实现按钮功能(大部分都是通过 mouse_click 来完成点击功能的)。 但是现在都是使用的 UI 组件库,这些语义化的工作都是组件库提前帮我们处理好了。日常工作中大部分的时间其实会书写的 html 的需求几乎只会有页面布局的场景,大量使用 div 也是没问题。 换一个更加实际的话来说,其实说不需要语义化的人,大部分的工作内容都是一些管理后台相关的业务。这些内部业务其实就对语义化/无障碍没有什么需求,是否在开发过程中使用语义化就完全是看自己的习惯和自己对于代码的要求。 |
![]() | 56 Q65f257Thf3o2cyZ 2024-06-27 11:06:52 +08:00 自己写的项目会注意. 公司的项目,除非公司要求 ...... |
![]() | 57 hahastudio 2024-06-27 11:08:46 +08:00 即便不想写,WCAG 和 VPAT 也会按着头让写 |
58 xqk111 2024-06-27 11:11:38 +08:00 少,语义化的标签有时候还会带一些样式,还得改,不如 div 方便 |
59 zictos 2024-06-27 11:16:33 +08:00 语义化有利于 seo ,反正我找到博客模版都是用了语义化标签的 |
60 bzj 2024-06-27 11:18:53 +08:00 不用语义化标签,全部用 div 有种脱裤子放屁的感觉 |
61 xxmym 2024-06-27 11:21:14 +08:00 我用, 语义标签结构清晰,而且能省掉一些 class |
62 yunlongV 2024-06-27 11:24:50 +08:00 只有需要 seo 和 layout 的地方我才用语义化..比如 a 标签,h1-h6 ,img ,其他的地方基本上是 div 一把梭 |
64 wysnxzm 2024-06-27 11:33:41 +08:00 有点像 restfull 和 post 的问题 |
![]() | 65 7gugu 2024-06-27 11:42:54 +08:00 除非是无障碍化的需求单,否则不可能主动去写语义化标签,用 div 就是为了减少心智负担,做业务最重要的是功能,功能实现好了再讨论美不美吧,很多需求在讨论美不美之前就已经暴毙了,写的再漂亮又有何用,徒增自己的工作量,让下班时间无限延后。 |
![]() | 66 Hilong 2024-06-27 11:47:28 +08:00 用的 figma 自动生成的 html+tailwindcss 生成的代码就是 div 一把梭,刚入行的时候我还会用一些其他标签,现在已经习惯了 div 一把梭了 |
![]() | 67 Arrowing 2024-06-27 11:47:40 +08:00 @jguo 这个可不能一概而论,变道不打灯影响的是安全,绝对支持提前打灯。语义化标签在绝大多数场景下都是可有可无,没影响。 |
![]() | 68 mandex 2024-06-27 11:50:12 +08:00 我用的。内部系统用 react 的时候不太关注这个。但是我做了很多游戏官网,这个时候是要用的,因为真的要考虑 SEO ,还是有点影响的。 |
![]() | 69 dog 2024-06-27 12:13:33 +08:00 via iPhone 非前端,习惯看着 MDN 能用的都尽量用。 |
![]() | 70 elevioux 2024-06-27 13:44:32 +08:00 我。 不是专门前端,主要写 PHP 。 尽量写语义化标签是以前写博客、写门户类型的网站的时候,看到有文章说语义化标签有助于 SEO 。 这个习惯一直保留到现在。 h123456,main,header,nav,footer,section,quote,time,pre,code 等等,我是尽量分清楚的,即使是无关 SEO 的后台界面。 不过现在都习惯前后端分离,不关注 SEO ,搞封闭,也就无所谓了。 |
![]() | 71 keithwhisper 2024-06-27 14:09:37 +08:00 ![]() 看到补充里的 "保持谦卑,不断学习才是最重要的。"以及后面的 "个人表示 js 才是前端的核心,前端的卷是在于技术迭代更新的快", "某些老前端扣新人代码扣不出毛病,搁那里扯颜色,间距、字体...的毛病" 你既不谦卑, 也不学习 |
![]() | 72 shqingda 2024-06-27 14:09:37 +08:00 via Android div 一把梭,span 都很少用。如果本身不是 div ,就在套一个 div 解决 |
73 awinds 2024-06-27 14:15:14 +08:00 老项目一般都 div table 吧,现在新的框架或 html 才会出现 |
![]() | 74 wonderfulcxm 2024-06-27 14:15:14 +08:00 哈哈 ,用啊,看老外教程经常用,我也用了,特别是写 wordpress 的模板,什么 header, footer, nav , article 很常见,WP 站的的 SEO 比较好跟这是有一部分原因的。 |
![]() | 75 chill777 OP @keithwhisper 。。。这你都可以看不出来?具体指什么方面?我好改正 |
![]() | 76 qiaobeier 2024-06-27 14:18:40 +08:00 用不用都可以,不懂还用,比如我们组里的一个台妹,用<LI>不用<UL>, 或者 UL 下面跟着 DIV 这你受得了吗。 |
![]() | 78 keithwhisper 2024-06-27 14:43:01 +08:00 ![]() Reply to #17 @chill777 "个人表示 js 才是前端的核心,前端的卷是在于技术迭代更新的快" 这是傲慢的想法, 觉得一门语言就是一个生态的核心. HTML, CSS 和 JS 都是解决生态里某一领域问题的, 哪个更重要肯定得看面对的问题是什么. 要极端地举例, 我可以说 HTML + CSS 就能呈现一个前端的展示, 缺少 HTML 是做不到的. "某些老前端扣新人代码扣不出毛病,搁那里扯颜色,间距、字体...的毛病" 别人提出颜色, 间距, 字体的问题, 如果不符合预期, 就是问题, 被指出了就应该改好, 而不是觉得 "老前端扣不出新人代码的毛病" |
79 GoNtte 2024-06-27 14:46:31 +08:00 比如标签这些顺手就写了,再细致点的 aria 就算了,项目又没特殊需求,尽快搞完需求要紧 |
81 Greendays 2024-06-27 15:27:21 +08:00 原来这叫语义化,看这个帖子之前我还以为 HTML 只有这种写法( |
![]() | 84 treblex 2024-06-27 16:07:16 +08:00 专门做网站的时候会注意,现在都是小程序就用不到了 不过我比较在意可点击的内容要有交互效果,最简单的就是可以做个按下半透明,很多应用做出来都是铁按钮,按下去一点儿反应都没有 |
![]() | 85 qin20 2024-06-27 17:23:12 +08:00 1. 语义化的好处是什么,成本又需要多少,是不是什么项目都需要语义化呢? - 在我看来大部分项目都不需要语义化,收益很小,但是需要付出的成本却很大,很繁琐 2. 语义化很难吗,是一个很高深的技术吗,需要炫耀和比较吗? - 只能扯这个的人都纯属扯淡,吃饱没事干 |
![]() | 86 TORYOI 2024-06-27 17:26:22 +08:00 细心+基础才是前端的核心 |
![]() | 87 ssb4 2024-06-27 17:48:48 +08:00 水平不行,菜还不承认 |
88 Rebron1900 2024-06-27 17:51:29 +08:00 @chill777 不是在讨论用不用吗?用你也让人拉倒?再说现在做网站几个不用框架的? |
![]() | 89 zhx643 2024-06-27 17:52:38 +08:00 像 header section footer 经常使用 |
![]() | 90 NerbraskaGuy 2024-06-27 17:56:55 +08:00 这玩意跟水平也没啥关系吧,引申一下就是 CSS 脑子记得多就算水平高吗,靠这些东西来定于水平那前端整体上限也不会高到哪里去 |
![]() | 91 seki 2024-06-27 17:57:47 +08:00 a11y 不一定需要语义化标签,用 role 之类的也行 |
92 mxT52CRuqR6o5 2024-06-27 18:02:11 +08:00 via Android csr 对 seo 的影响明显远大于语义化标签啊,不把 csr 的因素排除是怎么得出 seo 全靠语义化的结论的 |
![]() | 93 k9982874 2024-06-27 18:03:11 +08:00 via Android |
![]() | 94 tomowang 2024-06-27 18:14:33 +08:00 我在个人项目中用,nav, main, section, footer 这些,主要想看看 lighthouse 评分之类的。但是公司项目,大部分不考察这些,很多时候也是 div 。不过基本的原则比如链接 a 标签、button 这种,能注意的还是会注意 |
![]() | 95 Torpedo 2024-06-27 18:43:50 +08:00 常年做内场项目 、app 里的 webview ,我已经不会语义化了 另外,复杂的应用很难兼顾语义化的 |
![]() | 96 chill777 OP #88 @Rebron1900 。。。你点进去看了吗?你玩过博客吗? astro 自己生成的标签,你管是自己注重语义化?这么会往脸上贴金? git clone 的代码,你怎么不说是自己写的呢?不懂少说话,丢人玩意 |
![]() | 97 chill777 OP #78 @keithwhisper 1. 如果没有 js ,前端永远只是是切图仔。 2. 身为程序员,code review 时扣无关紧要的外观,很 low ,都是按照 ui 和标准来的。就算扣也是产品和 leader 来说。而不是有的人仗着资历,去刷存在感。谁又比谁的审美高级? 我说的谦卑,不代表要接受别人的 pua 。不断学习,是学习技术和知识,不是学习在不合理的指责下还要说谢谢你,我要改的。OK ? |
![]() | 98 ccbikai PRO |
99 chihiro2014 2024-06-27 20:32:30 +08:00 all in div |
![]() | 100 LavaC 2024-06-27 20:34:51 +08:00 |