掘金第一篇前端文章|从0到1,记录我的前端入门实操笔记

8 阅读9分钟

掘金第一篇前端文章|从0到1,记录我的前端入门实操笔记

大家好~ 我是刚踏入前端领域的新手开发者,今天终于鼓起勇气发布自己在掘金的第一篇文章✨

接触前端也有一段时间了,从一开始对着HTML标签手足无措,到能写出简单的静态页面,中间踩过不少坑,也收获了很多细碎的小知识点。一直默默在掘金看各位大佬的文章学习,今天决定把自己的学习笔记整理出来,既是对这段时间学习的总结,也希望能给和我一样刚入门的小伙伴一点点参考,更期待能得到各位前辈的指点和建议❤️

这篇文章不会讲复杂的框架和底层原理,主打一个「新手友好、实操落地」,主要分享3个前端入门必会的基础知识点,附完整代码和效果演示,适合刚接触前端的小伙伴跟着练手,大佬们可以直接划走~

一、入门前提:明确前端核心基础

刚开始学习前端时,我很迷茫,不知道该从哪里下手,后来看了很多前辈的分享才明白,前端入门的核心就是「HTML+CSS+JavaScript」这三件套,三者各司其职:

  • HTML:负责搭建页面结构,相当于给页面“搭骨架”,比如标题、段落、图片、按钮这些基础元素,都是用HTML标签实现的;
  • CSS:负责美化页面,相当于给页面“穿衣服”,控制字体、颜色、布局、间距,让页面看起来更美观;
  • JavaScript:负责实现页面交互,相当于给页面“注入灵魂”,比如点击按钮弹出提示、鼠标悬停改变样式等动态效果。

入门阶段不用追求“一口吃成胖子”,先把这三件套的基础打扎实,后续学习框架(比如Vue、React)会轻松很多。这里给新手一个小建议:不要只看不动手,每学一个知识点,一定要亲手写代码验证,实操才是掌握前端的关键✨

二、实操案例:3个入门必练小效果(附完整代码)

下面分享3个我入门时反复练习的小案例,代码简单易懂,注释详细,新手可以直接复制到本地,修改参数就能看到效果,建议大家动手试一遍,加深理解。

案例1:简单的个人介绍卡片(HTML+CSS)

这个案例主要练习HTML的基础标签(div、h2、p、img)和CSS的基础样式(边框、圆角、居中、颜色),最终实现一个简洁的个人介绍卡片,适合新手熟悉页面结构和样式控制。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>个人介绍卡片</title>
    <style>
        /* 重置默认样式,避免不同浏览器显示差异 */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        /* 卡片容器样式 */
        .card {
            width: 300px;
            height: 400px;
            /* 居中显示 */
            margin: 50px auto;
            /* 边框和圆角 */
            border: 1px solid #eee;
            border-radius: 12px;
            /* 阴影,让卡片更有层次感 */
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
            /* 内边距,让内容和边框有距离 */
            padding: 20px;
            /* 文本居中 */
            text-align: center;
        }
        /* 头像样式 */
        .card img {
            width: 120px;
            height: 120px;
            /* 圆形头像 */
            border-radius: 50%;
            /* 边框,增加美观度 */
            border: 3px solid #42b983;
            margin-bottom: 20px;
        }
        /* 标题样式 */
        .card h2 {
            color: #333;
            margin-bottom: 10px;
        }
        /* 描述文本样式 */
        .card p {
            color: #666;
            line-height: 1.6;
            margin-bottom: 20px;
        }
        /* 按钮样式 */
        .card button {
            width: 120px;
            height: 40px;
            background-color: #42b983;
            color: white;
            border: none;
            border-radius: 20px;
            cursor: pointer;
            /*  hover效果,鼠标悬停时变化 */
            transition: background-color 0.3s;
        }
        .card button:hover {
            background-color: #359469;
        }
    </style>
</head>
<body>
    <div class="card">
        <img src="https://picsum.photos/200/200" alt="头像">
        <h2>前端新手小杨</h2>
        <p>正在努力学习HTML、CSS、JavaScript,目标是成为一名优秀的前端开发者,记录每一步成长~</p>
        <button>关注我</button>
    </div>
</body>
</html>

效果说明:页面会显示一个居中的卡片,包含头像、姓名、个人描述和按钮,鼠标悬停在按钮上时,按钮颜色会变深,适合新手练习CSS的基础样式和hover交互。大家可以替换头像链接、修改文字和颜色,打造自己的个人卡片。

案例2:鼠标悬停显示隐藏文本(HTML+CSS+JavaScript)

这个案例在基础卡片的基础上,增加了JavaScript交互,实现“鼠标悬停在卡片上,显示隐藏的更多介绍文本”,练习DOM操作和事件绑定,理解JavaScript如何控制页面元素的显示与隐藏。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>悬停显示隐藏文本</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        .card {
            width: 300px;
            height: 450px;
            margin: 50px auto;
            border: 1px solid #eee;
            border-radius: 12px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
            padding: 20px;
            text-align: center;
            /* 过渡效果,让显示隐藏更流畅 */
            transition: all 0.3s;
        }
        .card img {
            width: 120px;
            height: 120px;
            border-radius: 50%;
            border: 3px solid #42b983;
            margin-bottom: 20px;
        }
        .card h2 {
            color: #333;
            margin-bottom: 10px;
        }
        .card .intro {
            color: #666;
            line-height: 1.6;
            margin-bottom: 20px;
        }
        /* 隐藏的文本,默认不显示 */
        .card .more-intro {
            color: #666;
            line-height: 1.6;
            display: none; /* 默认隐藏 */
            margin-bottom: 20px;
        }
        .card button {
            width: 120px;
            height: 40px;
            background-color: #42b983;
            color: white;
            border: none;
            border-radius: 20px;
            cursor: pointer;
            transition: background-color 0.3s;
        }
        .card button:hover {
            background-color: #359469;
        }
    </style>
</head>
<body>
    <div class="card" id="card">
        <img src="https://picsum.photos/200/200" alt="头像">
        <h2>前端新手小杨</h2>
        <p class="intro">正在努力学习HTML、CSS、JavaScript,目标是成为一名优秀的前端开发者,记录每一步成长~</p>
        <p class="more-intro">目前已掌握HTML基础标签、CSS基础样式、简单的JavaScript交互,正在学习Flex布局和响应式开发,后续会持续分享学习笔记和实操案例,和大家一起进步!</p>
        <button>关注我</button>
    </div>

    <script>
        // 1. 获取卡片元素
        const card = document.getElementById('card');
        // 2. 获取隐藏的文本元素
        const moreIntro = document.querySelector('.more-intro');
        // 3. 绑定鼠标悬停事件(mouseover)
        card.addEventListener('mouseover', function() {
            // 鼠标悬停时,显示隐藏的文本
            moreIntro.style.display = 'block';
        });
        // 4. 绑定鼠标离开事件(mouseout)
        card.addEventListener('mouseout', function() {
            // 鼠标离开时,隐藏文本
            moreIntro.style.display = 'none';
        });
    </script>
</body>
</html>

关键知识点:通过getElementById和querySelector获取页面元素,通过addEventListener绑定鼠标事件(mouseover、mouseout),通过修改style.display控制元素的显示与隐藏。新手可以尝试修改事件类型(比如点击事件click),看看效果有什么不同。

案例3:简单的计数器(HTML+CSS+JavaScript)

这个案例是前端入门必练的交互案例,实现“点击按钮,数字增加或减少”,练习事件绑定、变量操作和DOM更新,理解JavaScript如何响应用户操作并修改页面内容。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>简单计数器</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        .counter {
            width: 300px;
            height: 200px;
            margin: 50px auto;
            border: 1px solid #eee;
            border-radius: 12px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
            padding: 20px;
            text-align: center;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
        }
        .counter h2 {
            color: #333;
            margin-bottom: 30px;
        }
        .counter .num {
            font-size: 40px;
            color: #42b983;
            margin-bottom: 30px;
        }
        .counter .btn-group {
            display: flex;
            gap: 20px; /* 按钮之间的间距 */
        }
        .counter button {
            width: 60px;
            height: 40px;
            background-color: #42b983;
            color: white;
            border: none;
            border-radius: 8px;
            cursor: pointer;
            font-size: 20px;
            transition: background-color 0.3s;
        }
        .counter button:hover {
            background-color: #359469;
        }
        /* 减少按钮样式区分 */
        .counter .btn-minus {
            background-color: #f56c6c;
        }
        .counter .btn-minus:hover {
            background-color: #e04a4a;
        }
    </style>
</head>
<body>
    <div class="counter">
        <h2>简单计数器</h2>
        <div class="num" id="num">0</div>
        <div class="btn-group">
            <button class="btn-minus" id="btnMinus">-</button>
            <button class="btn-plus" id="btnPlus">+</button>
        </div>
    </div>

    <script>
        // 1. 定义计数器初始值
        let count = 0;
        // 2. 获取页面元素
        const numElement = document.getElementById('num');
        const btnMinus = document.getElementById('btnMinus');
        const btnPlus = document.getElementById('btnPlus');
        // 3. 绑定减少按钮点击事件
        btnMinus.addEventListener('click', function() {
            count--;
            // 更新页面显示的数字
            numElement.innerText = count;
        });
        // 4. 绑定增加按钮点击事件
        btnPlus.addEventListener('click', function() {
            count++;
            // 更新页面显示的数字
            numElement.innerText = count;
        });
    </script>
</body>
</html>

效果说明:页面显示一个计数器,初始值为0,点击“+”按钮,数字增加;点击“-”按钮,数字减少。关键知识点:使用变量存储计数器的值,通过innerText修改页面元素的内容,绑定点击事件响应用户操作。新手可以尝试增加“重置”按钮,实现点击重置按钮,数字恢复为0的功能。

三、新手学习心得&避坑指南

作为一名前端新手,这段时间的学习让我深刻体会到:前端学习没有捷径,唯有“多练、多总结、多提问”,才能快速成长。这里分享几个我踩过的坑和学习心得,希望能帮到和我一样的新手小伙伴:

  • 避坑1:不要只看视频/文章,不写代码。很多新手和我一样,一开始喜欢囤各种学习资料,看视频觉得自己都懂了,但动手写代码时却一片混乱。记住:前端是“练”出来的,每学一个知识点,一定要亲手写代码,哪怕是简单的复制粘贴,也要自己修改参数,观察效果变化。
  • 避坑2:不要急于学习框架。刚入门就急于学习Vue、React等框架,很容易陷入“只会用框架,不懂基础”的困境。框架是基于HTML、CSS、JavaScript的,只有把基础打扎实,才能真正理解框架的原理,使用起来也更得心应手。
  • 心得1:遇到问题,先自己尝试解决。学习过程中遇到bug是很正常的,不要一遇到问题就去问别人,先自己检查代码,查看控制台报错信息(F12打开控制台),尝试百度搜索解决方案。这个过程虽然耗时,但能让你印象更深刻,也能培养自己的问题解决能力。
  • 心得2:多逛掘金、CSDN等技术社区。掘金上有很多优秀的前端文章和实操案例,还有很多前辈分享的学习经验和面试技巧,每天花半小时逛一逛,能拓宽自己的视野,也能找到很多学习灵感。我就是靠着逛掘金,解决了很多学习中遇到的问题。

四、最后想说的话

这是我发布的第一篇前端文章,内容可能还有很多不足,代码也不够简洁,希望各位前辈能多多指点,提出宝贵的建议❤️

前端学习是一个长期坚持的过程,没有一蹴而就的成功,每一步小小的进步,都是成长的见证。未来,我会持续分享自己的学习笔记、实操案例和踩坑经验,记录自己的前端成长之路,也希望能和各位小伙伴一起交流学习、共同进步。

如果这篇文章对你有一点点帮助,麻烦点个赞、收藏一下,你的支持就是我坚持下去的最大动力~ 也欢迎大家在评论区留言,分享自己的前端学习心得,或者提出自己的疑问,我们一起探讨、一起成长!

后续我会陆续分享Flex布局、响应式开发、JavaScript进阶等知识点,关注我,一起解锁前端更多技能✨

#前端入门 #HTML #CSS #JavaScript #新手前端 #前端实操