惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
K
Kaspersky official blog
A
Arctic Wolf
Attack and Defense Labs
Attack and Defense Labs
L
LINUX DO - 热门话题
N
News | PayPal Newsroom
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
L
Lohrmann on Cybersecurity
PCI Perspectives
PCI Perspectives
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
The Last Watchdog
The Last Watchdog
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
W
WeLiveSecurity
Know Your Adversary
Know Your Adversary
博客园 - Franky
T
Tenable Blog
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Help Net Security
Help Net Security
WordPress大学
WordPress大学
T
The Exploit Database - CXSecurity.com
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 司徒正美
阮一峰的网络日志
阮一峰的网络日志
D
Darknet – Hacking Tools, Hacker News & Cyber Security
H
Heimdal Security Blog
TaoSecurity Blog
TaoSecurity Blog
S
Security Affairs
J
Java Code Geeks
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Apple Machine Learning Research
Apple Machine Learning Research
NISL@THU
NISL@THU
O
OpenAI News
The Cloudflare Blog
月光博客
月光博客
Google Online Security Blog
Google Online Security Blog
V
V2EX
罗磊的独立博客
美团技术团队
博客园 - 三生石上(FineUI控件)
Security Latest
Security Latest
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
Cyber Attacks, Cyber Crime and Cyber Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Cyberwarzone
Cyberwarzone
L
LINUX DO - 最新话题
Hacker News - Newest:
Hacker News - Newest: "LLM"
大猫的无限游戏
大猫的无限游戏

张鑫旭-鑫空间-鑫生活

1分钟速度了解text-align match-parent声明 « 张鑫旭-鑫空间-鑫生活 光标的形状也能设置了,就是CSS caret-shape属性 « 张鑫旭-鑫空间-鑫生活 pretext与文字四面环绕效果的实现 « 张鑫旭-鑫空间-鑫生活 JSON.rawJSON方法的作用是什么? « 张鑫旭-鑫空间-鑫生活 如何使用CSS判断鼠标从哪个方向进入元素? « 张鑫旭-鑫空间-鑫生活 借助mediabunny纯JS实现视频水印、剪裁、合成等功能 « 张鑫旭-鑫空间-鑫生活 务必谨慎使用JS WeakRef弱引用 « 张鑫旭-鑫空间-鑫生活 CSS六边形头像的实现与蜂巢布局 « 张鑫旭-鑫空间-鑫生活 CSS corner-shape与背景底纹技术 « 张鑫旭-鑫空间-鑫生活 浅学WebTransport API:下一代Web双向通信技术 « 张鑫旭-鑫空间-鑫生活 HTML dialog元素新支持了closedBy属性 « 张鑫旭-鑫空间-鑫生活 HTML interestfor属性与悬停popover交互效果 « 张鑫旭-鑫空间-鑫生活 CSS3模拟window7炫酷界面效果展示 « 张鑫旭-鑫空间-鑫生活 图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活 纯js无图片无外链CSS图片幻灯片播放插件 « 张鑫旭-鑫空间-鑫生活 CSS border三角、圆角图形生成技术简介 « 张鑫旭-鑫空间-鑫生活 CSS “渐进增强”在web制作中常见应用举例 « 张鑫旭-鑫空间-鑫生活 让IE6/IE7/IE8浏览器支持CSS3属性 « 张鑫旭-鑫空间-鑫生活 jQuery – 高亮动态显示页面HTML代码插件 « 张鑫旭-鑫空间-鑫生活 翻译 – 逐渐消失的Flash网站 « 张鑫旭-鑫空间-鑫生活 CSS reset的重新审视 – 避免样式重置 « 张鑫旭-鑫空间-鑫生活 新浪微博插入话题后部分文字选中的js实现 « 张鑫旭-鑫空间-鑫生活 JavaScript实现http地址自动检测并添加URL链接 « 张鑫旭-鑫空间-鑫生活 CSS实现兼容性的渐变背景(gradient)效果 « 张鑫旭-鑫空间-鑫生活 CSS content内容生成技术以及应用 « 张鑫旭-鑫空间-鑫生活 CSS gradient渐变之webkit核心浏览器下的使用 « 张鑫旭-鑫空间-鑫生活 CSS渐变之CSS3 gradient在Firefox3.6下的使用 « 张鑫旭-鑫空间-鑫生活 区分IE8/IE7/IE6及其他浏览器-CSS “\9″hack « 张鑫旭-鑫空间-鑫生活 CSS实现跨浏览器兼容性的盒阴影效果 « 张鑫旭-鑫空间-鑫生活 CSS3&HTML5各浏览器支持情况一览表 « 张鑫旭-鑫空间-鑫生活 翻译 – CSS Sprites:实用技术还是生厌之物? « 张鑫旭-鑫空间-鑫生活 纯CSS实现易拉罐3D滚动效果 « 张鑫旭-鑫空间-鑫生活 纯CSS实现侧边栏/分栏高度自动相等 « 张鑫旭-鑫空间-鑫生活 CSS+JavaScript实现页面不同布局的切换 « 张鑫旭-鑫空间-鑫生活 JavaScript实现最简单的拖拽效果 « 张鑫旭-鑫空间-鑫生活 自己写的无图片版jQuery zxxbox弹出框插件 « 张鑫旭-鑫空间-鑫生活 中国古代道家思想与网页重构的思考 « 张鑫旭-鑫空间-鑫生活 让所有浏览器支持HTML5 video视频标签 « 张鑫旭-鑫空间-鑫生活 纯CSS实现各类气球泡泡对话框效果 « 张鑫旭-鑫空间-鑫生活 JS HEX十六进制与RGB, HSL颜色的相互转换 « 张鑫旭-鑫空间-鑫生活 CSS实现兼容性的渐变、高光等文字效果 « 张鑫旭-鑫空间-鑫生活 去除冗余 – 精简您的CSS样式代码 « 张鑫旭-鑫空间-鑫生活 对overflow与zoom”清除浮动”的一些认识 « 张鑫旭-鑫空间-鑫生活 jQuery Pagination Ajax分页插件中文详解 « 张鑫旭-鑫空间-鑫生活 absolute绝对定位的非绝对定位用法 « 张鑫旭-鑫空间-鑫生活 网页布局思想浅议-淘宝新版首页为实例 « 张鑫旭-鑫空间-鑫生活 回流与重绘:CSS性能让JavaScript变慢? « 张鑫旭-鑫空间-鑫生活 CSS float浮动的深入研究、详解及拓展(二) « 张鑫旭-鑫空间-鑫生活 CSS float浮动的深入研究、详解及拓展(一) « 张鑫旭-鑫空间-鑫生活 60个极富创造性的震撼的电影海报设计 « 张鑫旭-鑫空间-鑫生活 jQuery Lightbox(balupton版)图片展示插件讲解 « 张鑫旭-鑫空间-鑫生活 博客内嵌flash音乐播放器代码、下载与使用 « 张鑫旭-鑫空间-鑫生活 CSS3 animate实现图片墙3D翻转效果 « 张鑫旭-鑫空间-鑫生活 图片旋转效果的一些研究、jQuery插件及实例 « 张鑫旭-鑫空间-鑫生活 CSS3 border-image详解、应用及jQuery插件 « 张鑫旭-鑫空间-鑫生活 jQuery-两款不同原理的圆角插件讲解 « 张鑫旭-鑫空间-鑫生活 页面可用性之outline轮廓外框的一些研究 « 张鑫旭-鑫空间-鑫生活 CSS3 transition实现超酷图片墙动画效果 « 张鑫旭-鑫空间-鑫生活 HTML CSS列表元素ul,ol,dl的研究与应用 « 张鑫旭-鑫空间-鑫生活 jQuery图片文本滚动切换插件jCarousel中文翻译与详解 « 张鑫旭-鑫空间-鑫生活 酷酷的jQuery鼠标悬停图片放大切换显示效果 « 张鑫旭-鑫空间-鑫生活 IE6下z-index犯癫不起作用bug的初步研究 « 张鑫旭-鑫空间-鑫生活 checkbox复选框的一些深入研究与理解 « 张鑫旭-鑫空间-鑫生活 jQuery之使用slideToggle实现垂直下拉菜单 « 张鑫旭-鑫空间-鑫生活 jQuery-innerfade内部列表自动淡入淡出插件 « 张鑫旭-鑫空间-鑫生活 jQuery-火焰灯效果导航菜单 « 张鑫旭-鑫空间-鑫生活 IE下css bug集合-翻译自haslayout.net « 张鑫旭-鑫空间-鑫生活 翻译-IE7/8@font-face嵌入字体与文字平滑 « 张鑫旭-鑫空间-鑫生活 jQuery-马化腾产品设计与用户体验的一些技术实现 « 张鑫旭-鑫空间-鑫生活 像素的世界及其在web开发制作中的应用 « 张鑫旭-鑫空间-鑫生活 css行高line-height的一些深入理解及应用 « 张鑫旭-鑫空间-鑫生活 CSS实现圆角六色渐变自适应按钮详解 « 张鑫旭-鑫空间-鑫生活 我熟知的三种三栏网页宽度自适应布局方法 « 张鑫旭-鑫空间-鑫生活 jQuery照片图像剪裁插件Jcrop中文翻译详解 « 张鑫旭-鑫空间-鑫生活 Ajax Upload多文件上传插件翻译及中文演示 « 张鑫旭-鑫空间-鑫生活 告别图片—使用字符实现兼容性的圆角尖角效果beta版 « 张鑫旭-鑫空间-鑫生活 大小不固定的图片、多行文字的水平垂直居中 « 张鑫旭-鑫空间-鑫生活 jQuery boxy弹出层对话框插件中文演示及讲解 « 张鑫旭-鑫空间-鑫生活 JavaScript实现新浪微博文字放大显示动画效果 « 张鑫旭-鑫空间-鑫生活 翻译:让网络更快一些——最小化浏览器中的回流(reflow) « 张鑫旭-鑫空间-鑫生活 jQuery之addClasas与removeClass使用实例 « 张鑫旭-鑫空间-鑫生活 关于Google圆角高光高宽自适应按钮及其拓展 « 张鑫旭-鑫空间-鑫生活 JavaScript实现图片幻灯片滚动播放动画效果 « 张鑫旭-鑫空间-鑫生活 jQuery-鼠标经过显示大图并跟随鼠标效果插件 « 张鑫旭-鑫空间-鑫生活 关于gif图片(或png8)杂边锯齿的问题 « 张鑫旭-鑫空间-鑫生活 对html与body的一些研究与理解 « 张鑫旭-鑫空间-鑫生活 鲜为人知的一个解决兼容性问题的利器——小数 « 张鑫旭-鑫空间-鑫生活 搜狐白社会似iphone短信对话框效果的优化 « 张鑫旭-鑫空间-鑫生活 关于文字内容溢出用点点点(…)省略号表示 « 张鑫旭-鑫空间-鑫生活 jquery之append与insertBefore使用实例 « 张鑫旭-鑫空间-鑫生活 jQuery之图片关联伸缩效果 « 张鑫旭-鑫空间-鑫生活 jquery之图片左右切换动画效果 « 张鑫旭-鑫空间-鑫生活 jQuery之replace字符串替换实现不同尺寸图片切换 « 张鑫旭-鑫空间-鑫生活 jQuery-实现图片的放大镜显示效果 « 张鑫旭-鑫空间-鑫生活 jQuery-单击文字或图片内容放大显示效果插件 « 张鑫旭-鑫空间-鑫生活 reflection.js-实现图片投影倒影效果js插件 « 张鑫旭-鑫空间-鑫生活 jQuery-很酷的弹出层效果js插件 « 张鑫旭-鑫空间-鑫生活 复选框单选框与文字对齐问题的研究与解决 « 张鑫旭-鑫空间-鑫生活 css margin的相关属性,问题及应用 « 张鑫旭-鑫空间-鑫生活 IE6下png背景不透明问题的综合拓展 « 张鑫旭-鑫空间-鑫生活
好奇心驱使下试验了chatGPT写CSS代码的能力 « 张鑫旭-鑫空间-鑫生活
张鑫旭,zhangxinxu · 2023-03-17 · via 张鑫旭-鑫空间-鑫生活

by zhangxinxu from https://www.zhangxinxu.com/wordpress/?p=10786 鑫空间-鑫生活
本文欢迎分享与聚合,全文转载就不必了,尊重版权,圈子就这么大,若急用可以联系授权。

chatGpt封面图

想了10个与CSS相关的书写案例,看看chatGPT的CSS代码水平如何,评估下自己会不会失业。

一、开始啦,走起

1. 圆角渐变按钮

You

23:14

写一段CSS代码,蓝色渐变背景,圆角大小8px,高度40px,宽度120px

ChatGPT

23:14

“`css
div {
background: linear-gradient(to bottom, #007bff, #0088cc);
border-radius: 8px;
height: 40px;
width: 120px;
}
“`

解释:
– `background` 属性定义背景颜色、图像或渐变。这里使用了 `linear-gradient()` 渐变函数,表示从顶部到底部使用蓝色线性渐变,颜色分别为 `#007bff` 和 `#0088cc`。
– `border-radius` 属性可定义边框的圆角。这里设置为 `8px`,即8像素。
– `height` 属性定义元素的高度,这里设置为 `40px`。
– `width` 属性定义元素的宽度,这里设置为 `120px`。

喔噢,天哪,有点屌啊,这水平,已经比大部分前端都厉害了,你让现在的前端手写一个CSS渐变代码,很多人都写不出来的,线性渐变根本就拼不出来。

这ChatGPT不仅写了出来,连排版都弄好了,还是markdown语法,连各个属性的含义和作用都显示了,牛!

2. flex两端对齐布局

You

23:44

写一段CSS,flex布局,水平方向两端对齐,垂直方向居中对齐

ChatGPT

23:44

.container {
display: flex;
justify-content: space-between; /*水平方向两端对齐*/
align-items: center; /*垂直方向居中对齐*/
}

我了个擦,全对,连选择器类名都用得非常的合适,???

3. 全屏覆盖的黑色半透明层

You

23:51

写一段CSS,全屏覆盖的黑色半透明浮层,黑色透明度是75%

ChatGPT

23:51

“`css
.overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.75);
}
“`

解释:

– `position: fixed;` 让元素固定在浏览器窗口的位置,不随页面滚动而变化。
– `top: 0; left: 0;` 让元素从左上角开始覆盖整个屏幕。
– `width: 100%; height: 100%;` 让元素的宽度和高度都等于屏幕的宽度和高度,实现全屏覆盖效果。
– `background-color: rgba(0, 0, 0, 0.75);` 设置背景颜色为黑色,透明度为 75%,使用 rgba 颜色格式。

天呐个撸,我以为这一题应该会出点岔子的,没想到啊没想到,完全正确,这CSS代码水平,已经是职业水准了。???

4. 灰色分隔线

You

23:56

写一段CSS,灰色分隔线,高度1像素

ChatGPT

23:56

可以使用伪元素来实现灰色分隔线,代码如下:

“`CSS
.separator {
position: relative; /* 设置相对定位 */
height: 1px; /* 设置高度 */
}
.separator::before {
content: “”; /* 添加伪元素 */
position: absolute; /* 设置绝对定位 */
top: 50%; /* 设置位置居中 */
left: 0; /* 从左侧开始 */
width: 100%; /* 宽度为整个父元素 */
height: 1px; /* 高度同父元素 */
background-color: #ccc; /* 灰色背景色 */
transform: translateY(-50%); /* 使用transform垂直居中 */
}
“`

在HTML中,可以将类名`separator`添加到需要添加分隔线的元素上,例如:

“`HTML

Some content

“`

这样就会在`div`的顶部添加一条1像素高的灰色分隔线。

终于遇到了一个不完美的回答了。

这个回答不能说不正确,最终的效果也确实是一个 1px 高度的灰色分隔线,但是实现逻辑就啰嗦了,直接给.separator设置background-color为灰色就可以。

至于为什么会使用伪元素,那是因为在移动端,为了实现.5px的分隔线,都使用伪元素去创建(border边框半像素渲染效果不太好,在过去),chatGPT估计有大量类似代码的学习。

5. 图片元素的样式设置

You

00:04

写一段给图片元素添加样式的CSS,图片宽高都是10rem大小,图像内容填充方式是cover

ChatGPT

00:04

img {
width: 10rem;
height: 10rem;
object-fit: cover;
}

对于上面的结果,我只能说一句:牛逼!

6. CSS变量的使用

You

00:08

定义一个CSS变量,变量名任意,变量值是深天空蓝,此变量作为链接颜色使用,请用CSS代码表示

ChatGPT

00:08

–link-color: #0077B5;

a {
color: var(–link-color);
}
/* 将 a 标签的文本颜色设置为定义的变量,以便链接颜色与变量颜色相同 */

当答案出现的那一刻,我扑通一声给跪下了,这都可以,神了呀,无可挑剔。

我写的这段prompt怕是很多前端同行都会理解有误,这个chatGPT居然能够准确理解,且给出完全符合预期的代码,不得不服啊!

7. 去年支持的@container容器查询

You

00:12

写一段任意的容器查询CSS语句

ChatGPT

00:12

.container {
width: 100%; /*设置容器宽度为100%*/
max-width: 1200px; /*设置容器最大宽度为1200像素*/
margin: 0 auto; /*居中显示容器*/
padding: 20px; /*设置容器内边距为20像素*/
box-sizing: border-box; /*让容器的内边距和边框不会撑开容器*/
background-color: #fff; /*给容器设置白色背景颜色*/
border: 1px solid #ccc; /*给容器设置1像素灰色边框*/
}

You

00:15

写一段任意的@container规则查询CSS语句

ChatGPT

00:15

@media (min-width: 768px) {
.container {
max-width: 750px;
}
}

这个@container规则设置容器的最大宽度为750像素,只有在视口宽度大于等于768像素时才生效。

这个就没回答正确,哈哈哈,终于,估计是训练的模型数据不包括@container容器查询,毕竟这个CSS新特性是2022年才由各大浏览器支持的。

所以,ChatGPT学习CSS新技术新特性的能力要比成熟技术弱一些。

8. CSS兼容性询问

上上篇文章介绍了Safari 16开始支持的text-align-last属性,我就问问这个,嘿嘿嘿,我觉得我好坏,这种新特性正中ChatGPT的软肋,估计是不知道的。

结果——

You

00:26

text-align-last属性Safari浏览器支持吗?

ChatGPT

00:26

是的,Safari浏览器支持text-align-last属性。

You

00:27

text-align-last属性是Safari浏览器哪个版本支持的?

ChatGPT

00:27

Safari浏览器从版本9开始支持text-align-last属性。

一开始的回答出乎我的意料,我还以为chatGPT紧跟时事,连Safari去年底支持了text-align-last属性都知道,结果我追问了下,哦吼,原形毕露了,完全错误,Safari 9根本就不支持text-align-last属性,倒是justify-content和justify-items属性是Safari 9开始支持的。

这种过于细节的知识,Safari似乎表现没那么强了,还是比不过我,哈哈哈哈哈哈哈哈哈哈哈哈???

9. :is()和:where()伪类的区别

You

00:29

CSS :is()伪类和:where()伪类的区别

ChatGPT

00:29

:is()伪类和:where()伪类都是CSS Level 4新增的伪类,它们可以将多个选择器组合为一个复合选择器,从而使得写CSS代码更加简洁、灵活。

区别:

1. :is()伪类可以接受多个参数,将其作为“或”的关系组合在一起,例如`:is(p, h1, .class)`。而:where()只能接受一个参数,与该参数组合是等效的。

2. :is()伪类可以嵌套使用,例如`:is(:first-child, :last-child)`, 但:where()伪类不能嵌套。

3. :is()不会影响其他伪类的解析,而:where()会对其他伪类和伪元素的解析产生影响。

总之,:is()相对于:where()来说更加灵活、功能更强大,但还未普及以前,我们需要继续使用:where()伪类。

嗯……???

这个问题就属于一本正经地胡说八道了,:is():where()伪类的区别仅在于两者的选择器优先级不同而已,语法什么都是一样的。

chatGPT应该买本《CSS选择器世界》看看,或者等下个月《CSS选择器世界第2版》也可以,那就不会犯这么明显的错误了。

这样看起来很正经的解释最容易误人子弟了。

10. 写一段最能体现你CSS功力的代码

You

00:30

写一段最能体现你CSS功力的代码

ChatGPT

00:30

抱歉,作为AI语言模型,我没有执行代码的能力。但我可以给你提供一个示例:

“`
/* CSS代码块 */
.container {
width: 100%;
max-width: 1200px;
margin: 0 auto;
}

.card {
background-color: #fff;
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.1);
border-radius: 5px;
padding: 20px;
margin-bottom: 20px;
}

.card h2 {
font-size: 24px;
font-weight: bold;
margin-bottom: 10px;
}

.card p {
font-size: 16px;
line-height: 1.5;
color: #333;
}
“`

这段代码展示了我对于CSS盒模型、选择器、样式属性等方面的理解。其中:

– `.container`使用了百分比宽度、最大宽度、居中对齐等布局技巧;
– `.card`则涉及了背景色、阴影、边框圆角、内外边距等效果处理;
– `h2`和`p`则是对文字排版、字体大小、颜色、行高等样式的定义。

这段代码虽然简单,但却充分展示了我的CSS功力。

这一题的回答倒是很出色,如果作为开放性的面试题的话,可以得高分。

这下麻烦了,以后出面试题,可能以前那种效果很好的开放性面试题并不能测出候选人真实的实力了。

嗯……不过也不一定,到时候一看,好家伙,几个人的回答都是类似的,还有这语言描述风格,这完美无缺的语法,肯定有鬼,淘汰!

二、感想和结论

那些半吊子水平的前端真的要瑟瑟发抖了。

好在前端发展很快,新方法新特性出现的速度是快于人工智能学习的速度的(至少现在这个版本的chatGPT是这样的),所以,只要持续学习,对细节和基础掌握牢固,还是可以干的过chatGPT的,甚至可以把chatGPT当作小弟,当作工具,助力自己的工作效率进一步提高。

例如,一些没什么技术含量的CSS代码,直接让chatGPT生成,然后你自己复制粘贴就好了。

对于那些技术稳定,已经成型的技术领域,chatGPT带来的挑战可不得了。

从上面的测试可以看出,那些成熟的,传统的CSS代码,chatGPT可以完整无误地创建出来,效果惊为天人。

而chatGPT的发展非常地快,说不定过几个月chatGPT 5.0就出来了,到时候,随便画几张草图,整个网站的HTML和CSS代码就可以出来了(4.0似乎就已经有这样的能力)。

这不就是无数团队,众多前端心心念念的,设计图直接转代码嘛。

没想到是以这样的方式出现的。

伟大的变革正在出现,做好准备,迎接风暴的到来吧!

???

本文为原创文章,欢迎分享,勿全文转载,如果实在喜欢,可收藏,永不过期,且会及时更新知识点及修正错误,阅读体验也更好。
本文地址:https://www.zhangxinxu.com/wordpress/?p=10786

(本篇完)