2.7日学习记录

     依旧边学边写

重新复习了一下css的盒子模型和传统的网页布局方式(主要是自己练手的项目和实际上自己写的项目差别很大)。

(ps:原来的笔记本在学校没有带回来所以只能重新开始记点笔记)

小年后就开始忙了,所以这周只是做了一个简单的登录注册窗口以及图片轮播的效果。本来想的登录注册时新开一个窗口,类似于下列这种。

然后发现一是不美观,再者又不方便使用,再加上用js写的窗口居中有点问题(测试后才发现他酸的屏幕尺寸是我两个屏幕的尺寸加在一起/2),这样会导致点开的时候窗口靠在两个屏幕的连接处,还没想办法解决这个问题。

登录功能:

// 等待DOM内容完全加载
document.addEventListener("DOMContentLoaded", function() {
    // 通过ID获取登录按钮
    var loginButton = document.getElementById("nav-login");

    // 添加点击事件监听器到登录按钮
    loginButton.addEventListener("click", function() {
        // 调用函数显示登录窗口
        showLoginWindow();
    });

    // 显示登录窗口的函数
    function showLoginWindow() {
        // 创建一个新的窗口或模态框(你可以根据需要自定义此部分)
        var loginWindow = window.open("", "Login Window", "width=400,height=300");

        // 向登录窗口添加内容(你可以自定义此部分)
        loginWindow.document.write("<h2>登录窗口</h2>");
        loginWindow.document.write("<form>");
        loginWindow.document.write("<label for='username'>用户名:</label>");
        loginWindow.document.write("<input type='text' id='username' name='username'><br>");
        loginWindow.document.write("<label for='password'>密码:</label>");
        loginWindow.document.write("<input type='password' id='password' name='password'><br>");
        loginWindow.document.write("<input type='submit' value='登录'>");
        loginWindow.document.write("</form>");
    }
});

图片轮播+滚动条:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        /* 设置轮播容器的样式 */
        #slider-container {
            width: 80%; /* 设置轮播容器宽度 */
            margin: auto; /* 水平居中 */
            overflow: hidden; /* 隐藏超出容器部分的内容 */
        }

        /* 设置轮播列表的样式 */
        #slider-list {
            display: flex; /* 使用 Flex 布局 */
            transition: transform 0.5s ease-in-out; /* 添加过渡效果 */
        }

        /* 设置轮播项的样式 */
        .slider-item {
            min-width: 100%; /* 每个轮播项占据整个容器宽度 */
            box-sizing: border-box; /* 包含边框和内边距在内的元素的总宽度 */
        }

        /* 设置滚动条的样式 */
        body {
            overflow-y: scroll; /* 显示垂直滚动条 */
            margin: 0; /* 移除默认的页面边距 */
        }
    </style>
</head>
<body>

    <div id="slider-container">
        <div id="slider-list">
            <div class="slider-item">
                <img src="image1.jpg" alt="Image 1">
            </div>
            <div class="slider-item">
                <img src="image2.jpg" alt="Image 2">
            </div>
            <!-- 添加更多轮播项 -->
        </div>
    </div>

    <script>
        // 获取轮播列表和轮播容器的引用
        var sliderList = document.getElementById('slider-list');
        var sliderContainer = document.getElementById('slider-container');

        // 自动轮播的间隔时间(毫秒)
        var interval = 3000;

        // 设置定时器,实现自动轮播
        setInterval(function () {
            // 计算下一个轮播位置
            var newPosition = sliderList.scrollLeft + sliderContainer.clientWidth;

            // 如果已经到达最后一个轮播项,回到第一个轮播项
            if (newPosition >= sliderList.scrollWidth) {
                newPosition = 0;
            }

            // 使用平滑滚动效果
            sliderList.style.transition = 'transform 0.5s ease-in-out';
            sliderList.style.transform = 'translateX(' + -newPosition + 'px)';
        }, interval);
    </script>

</body>
</html>

登录窗口(这里还没实际运用,改成了用div窗口,这样的话方便对窗口的style进行修改)

<button id="showLoginWindowBtn">点击显示/隐藏登录窗口</button>

<div id="nav-login-window">
    <!-- 窗口内容 -->
</div>

<script>
    // 获取按钮和登录窗口的引用
    var showLoginWindowBtn = document.getElementById('showLoginWindowBtn');
    var loginWindow = document.getElementById('nav-login-window');

    // 初始化状态,隐藏登录窗口
    loginWindow.style.display = 'none';

    // 添加点击事件监听器
    showLoginWindowBtn.addEventListener('click', function () {
        // 切换登录窗口的显示状态
        if (loginWindow.style.display === 'none') {
            loginWindow.style.display = 'block';
        } else {
            loginWindow.style.display = 'none';
        }
    });
</script>

然后就是关于伪元素

双冒号(::)和单冒号(:):

在CSS中,双冒号(::)用于表示伪元素,而单冒号(:)用于表示伪类。虽然在实践中,许多浏览器对于伪元素和伪类的使用都支持使用单冒号,但根据最新的规范,建议使用双冒号(::)以区分伪元素和伪类。

::before和::after伪元素:

  • ::before 和 ::after 是最常见的伪元素。它们允许你在元素的内容之前或之后插入生成的内容,而无需在HTML中添加额外的元素。这通常用于添加装饰性的内容或图标
.example::before {
    content: "Before Content";
}

.example::after {
    content: "After Content";
}

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值