css-50 Projects in 50 Days(4)

html

html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>输入框隐藏</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css"
        integrity="sha512-1PKOgIY59xJ8Co8+NE6FZ+LOAZKjy+KY8iq0G4B3CyeY6wYHN3yt9PW0XpSriVlkMXe40PTKnXrLnZ9+fkDaog=="
        crossorigin="anonymous">
    <link rel="stylesheet" href="./index.css">
</head>

<body>
    <div class="search_wrapper">
        <input id="search_input" type="text" placeholder="请输入搜索内容" class="search_input "></input>
        <button id="search_btn" class="search_btn ">
            <i class="fas fa-search"></i>
        </button>
    </div>
    <script src="./index.js"></script>
</body>

</html>

css

css 复制代码
body {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: pink;
    height: 100vh;
}

.search_wrapper {
    display: flex;
    align-items: center;
    position: relative;

    .search_input {
        width: 50px;
        height: 50px;
        border: 0;
        padding: 0 16px;
        box-sizing: border-box;
        transition: .3s all ease;
        outline: 0;
    }

    .search_btn {
        width: 50px;
        height: 50px;
        position: absolute;
        left: 0;
        top: 0;
        border: 0;
        font-size: 24px;
        cursor: pointer;
        background-color: #fff;
        transition: .3s all ease;
    }

    .search_input_active {
        width: 200px;

    }

    .search_btn_active {
        transform: translateX(198px);
    }
}

js

javascript 复制代码
const state = {
    searchInputEl: document.querySelector('.search_input'),
    searchBtnEl: document.querySelector('.search_btn')
}

state.searchBtnEl.onclick = function () {
    state.searchInputEl.classList.toggle('search_input_active')
    state.searchInputEl.focus()
    state.searchBtnEl.classList.toggle('search_btn_active')
}
相关推荐
卷福同学1 小时前
AI编程出海第二步:验证关键词能否做站
前端·人工智能·后端
开普勒chr1 小时前
css样式diaplay:"contents"的妙用
css
赵庆明老师1 小时前
Vben精讲:21-详解web-antd:tsconfig.json
前端·json·vim
wc881 小时前
微软EDGE浏览器功能学习
前端·学习·edge
Csvn2 小时前
🎯 原生 `<dialog>` 元素:终于可以扔掉一半的自定义弹窗组件了?
前端
Csvn2 小时前
🎨 CSS @layer:用「层叠优先级」终结样式打架的世纪难题
前端
濮水大叔3 小时前
不必把 Vue3 写成“麻花”:从状态碎片到对象协作,重新理解 Zova 的前端心智模型
前端·typescript·vue3·ioc·tsx·zova
Vuji3 小时前
MCP: 一条 tool 调用链路的旅程
前端·人工智能
万少4 小时前
DeepSeek-V4-Flash 正式版上线了,但这 3 个坑我帮你提前踩了
前端·javascript·后端
明月_清风4 小时前
🚀 Palantir Foundry 本体论实战:当 Ontology 从"知识图谱"进化为"企业操作系统"
前端·后端