Web前端7.23作业-导航栏+CSS盒子

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>导航栏</title>
</head>
</head>
<body>
    <nav class="navbar">
        <div class="navbar-container">
            <a href="#" class="logo">Logo</a>
            <ul class="nav-links">
                <li><a href="#">首页</a></li>
                <li><a href="#">服务</a></li>
                <li><a href="#">产品</a></li>
                <li><a href="#">关于我们</a></li>
                <li><a href="#">联系方式</a></li>
            </ul>
            <button class="hamburger" id="hamburger">
                <span></span>
                <span></span>
                <span></span>
            </button>
        </div>
    </nav>
    <main>
        <h1>欢迎来到我们的网站</h1>
        <p>这里是一些介绍内容...</p>
    </main>

    <script src="script.js"></script>
    <style>
            * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
    
    body, html {
        font-family: Arial, sans-serif;
    }
    
    .navbar {
        background-color: #333;
        color: #fff;
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 10px 20px;
    }
    
    .navbar-container {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    
    .logo {
        color: #fff;
        text-decoration: none;
        font-size: 24px;
        font-weight: bold;
    }
    
    .nav-links {
        list-style: none;
    }
    
    .nav-links li {
        display: inline-block;
        margin-left: 20px;
    }
    
    .nav-links a {
        color: #fff;
        text-decoration: none;
        font-size: 18px;
    }
    
    .nav-links a:hover {
        color: #ddd;
    }
    
    .hamburger {
        display: none;
        flex-direction: column;
        cursor: pointer;
    }
    
    .hamburger span {
        background-color: #fff;
        height: 3px;
        margin: 3px 0;
        transition: all 0.3s ease;
    }
    
    @media (max-width: 768px) {
        .nav-links {
            display: none;
            width: 100%;
            flex-direction: column;
            align-items: center;
        }
    
        .nav-links li {
            margin: 10px 0;
        }
    
        .hamburger {
            display: flex;
        }
    
        .active .nav-links {
            display: flex;
        }
    }
    </style>
</body>
</html>

CSS盒子模型简介

CSS盒子模型是网页布局的基础,所有HTML元素都可以看作是一个矩形盒子。这个模型包括四部分:内容(Content)、内边距(Padding)、边框(Border)和外边距(Margin)。

  1. 内容(Content):盒子的内容区域,包括文本、图片等。
  2. 内边距(Padding):内容周围的空白区域,用padding属性设置。
  3. 边框(Border):围绕内容和内边距的线条,用border属性设置。
  4. 外边距(Margin):边框外的空白区域,用margin属性设置。

元素的宽度和高度

在CSS中,当你设置一个元素的宽度和高度时,实际上只是设置了内容区域的宽度和高度。整个元素的实际大小还需要加上内边距、边框和外边距。

例如,一个元素的总宽度计算公式为:

总宽度=width+左填充+右填充+左边框+右边框+左边距+右边距总宽度=width+左填充+右填充+左边框+右边框+左边距+右边距

浏览器的兼容性问题

不同浏览器对盒子模型的支持可能有所不同。例如,IE 5 和 6 在怪异模式中使用自己的非标准模型,其中元素的width属性包括了内容、内边距和边框的宽度总和,而不是仅仅是内容的宽度。为了解决这个问题,可以在HTML页面声明中使用<!DOCTYPE html>

盒模型的类型

CSS中有两种主要的盒子类型:区块盒子(block boxes)和行内盒子(inline boxes)。

  • 区块盒子:默认情况下,像<h1><p>这样的元素使用block作为外部显示类型。区块盒子会占据全部可用宽度,并且会产生换行。
  • 行内盒子:像<a><span>这样的元素默认使用inline作为外部显示类型。行内盒子不会产生换行,且widthheight属性通常不起作用。

盒子模型的切换

可以使用box-sizing属性来切换盒模型。例如,box-sizing: border-box;会将边框和内边距包含在元素的宽度和高度内。

综合案例

通过以上知识,可以尝试构建一些实际的网页布局。例如,可以尝试复制新浪网的一个侧边栏布局,这将会运用到盒子模型的各个方面,包括内容布局、内外边距设置、边框样式等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值