Codepen代码在VSCode中失效:CSS样式不显示且遇404错误求助
解决CSS样式未加载(404错误)的简单办法
我尝试给网站添加带特定样式的按钮,已关联HTML与CSS,但页面仅显示HTML内容,CSS样式完全未生效。确认index.html与style.css在同一目录,却收到服务器错误:
127.0.0.1 - - [15/May/2023 14:17:21] "GET /style.css HTTP/1.1" 404 -
代码来自Codepen,看不懂复杂解决方案,需要通俗易懂的解决办法。
我的代码
index.html
<!DOCTYPE html> <html> <head> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <button>Upload</button> <button>Preview</button> </body> </html>
style.css
@import "https://unpkg.com/open-props"; * { box-sizing: border-box; } body { display: grid; place-items: center; min-height: 100vh; background: var(--gray-12); } button { font-family: var(--font-sans); font-weight: var(--font-weight-6); font-size: var(--font-size-5); color: var(--gray-8); background: var(--gray-0); border: 0; padding: var(--size-4) var(--size-8); transform: translateY(calc(var(--y, 0) * 1%)) scale(var(--scale)); transition: transform 0.1s; position: relative; } button:hover { --y: -10; --scale: 1.1; --border-scale: 1; } button:active { --y: 5%; --scale: 0.9; --border-scale: 0.9, 0.8; } button:before { content: ""; position: absolute; inset: calc(var(--size-3) * -1); border: var(--size-2) solid var(--gray-0); transform: scale(var(--border-scale, 0)); transition: transform 0.125s; --angle-one: 105deg; --angle-two: 290deg; --spread-one: 30deg; --spread-two: 40deg; --start-one: calc(var(--angle-one) - (var(--spread-one) * 0.5)); --start-two: calc(var(--angle-two) - (var(--spread-two) * 0.5)); --end-one: calc(var(--angle-one) + (var(--spread-one) * 0.5)); --end-two: calc(var(--angle-two) + (var(--spread-two) * 0.5)); mask: conic-gradient( transparent 0 var(--start-one), white var(--start-one) var(--end-one), transparent var(--end-one) var(--start-two), white var(--start-two) var(--end-two), transparent var(--end-two) ); z-index: -1; }
解决步骤
检查文件名细节
确保style.css的文件名和HTML里的href="style.css"完全匹配:- 大小写一致:Linux/macOS系统区分大小写,
Style.css和style.css会被认成两个文件 - 无多余后缀:有些系统隐藏文件后缀,要开启显示后缀检查,避免出现
style.css.txt这种情况 - 无空格/特殊字符:文件名里不要加空格、中文或奇怪符号
- 大小写一致:Linux/macOS系统区分大小写,
确认文件位置
把index.html和style.css放在完全同一个文件夹里,不要嵌套子目录(比如如果CSS在css子文件夹,HTML里要写href="css/style.css",但你是同一目录,就确保没有嵌套)正确启动本地服务器
如果用本地服务器(比如Python的python -m http.server),必须在文件所在文件夹启动:- 打开命令行,用
cd命令进入到两个文件所在的文件夹 - 再执行启动命令,比如
python -m http.server 8000
这样服务器的根目录就是这个文件夹,才能找到style.css
- 打开命令行,用
临时测试代码有效性
把CSS代码直接放到HTML的<style>标签里,测试样式是否能生效,排除代码本身的问题:<!DOCTYPE html> <html> <head> <style> @import "https://unpkg.com/open-props"; * { box-sizing: border-box; } body { display: grid; place-items: center; min-height: 100vh; background: var(--gray-12); } button { font-family: var(--font-sans); font-weight: var(--font-weight-6); font-size: var(--font-size-5); color: var(--gray-8); background: var(--gray-0); border: 0; padding: var(--size-4) var(--size-8); transform: translateY(calc(var(--y, 0) * 1%)) scale(var(--scale)); transition: transform 0.1s; position: relative; } button:hover { --y: -10; --scale: 1.1; --border-scale: 1; } button:active { --y: 5%; --scale: 0.9; --border-scale: 0.9, 0.8; } button:before { content: ""; position: absolute; inset: calc(var(--size-3) * -1); border: var(--size-2) solid var(--gray-0); transform: scale(var(--border-scale, 0)); transition: transform 0.125s; --angle-one: 105deg; --angle-two: 290deg; --spread-one: 30deg; --spread-two: 40deg; --start-one: calc(var(--angle-one) - (var(--spread-one) * 0.5)); --start-two: calc(var(--angle-two) - (var(--spread-two) * 0.5)); --end-one: calc(var(--angle-one) + (var(--spread-one) * 0.5)); --end-two: calc(var(--angle-two) + (var(--spread-two) * 0.5)); mask: conic-gradient( transparent 0 var(--start-one), white var(--start-one) var(--end-one), transparent var(--end-one) var(--start-two), white var(--start-two) var(--end-two), transparent var(--end-two) ); z-index: -1; } </style> </head> <body> <button>Upload</button> <button>Preview</button> </body> </html>如果这样样式生效了,说明问题出在CSS文件的路径或命名上,回到前面几步排查。
强制刷新浏览器
有时候浏览器会缓存旧的错误状态,按Ctrl+Shift+R(Windows)或Cmd+Shift+R(Mac)强制刷新页面,尝试加载最新的CSS文件。
内容的提问来源于stack exchange,提问作者Sanjay Hundia
相关产品推荐
相关产品推荐

