Web前端基础笔记:第九章 CSS-定位(二)

这篇笔记详细讲解了CSS中的浮动布局,包括left和right浮动的用法,并深入探讨了模态框的制作,强调了模态框的中心定位特性及其实现步骤。此外,还介绍了搜索框的开发实战,以优课达登录页和知乎网页头部为例,提供实践经验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

9.1 Float

float布局最重要的两个元素:left(左浮动)、right(右浮动)

nav:一般用于表示此块区域块是导航区域
main:一般用户表示此区域块是网页的主体区域

9.2 定位实战(一):模态框

  • 模态框特点

    1、模态框总是在浏览器的中心,浏览器随意的放大缩小,模态框还是在浏览器中心
    2、模态框总有一个半透明的背景

  • 步骤
    1、完成半透明背景
    2、完成模态框内部

  • 元素水平居中:

    1、如果是行内元素,我们可以在父容器上使用text-align:center
    2、如果内部是块内元素,我们可以在子容器中使用margin:0 auto(如果次元素不是块状元素,需要设置display:block)
    元素垂直居中:
    margin-top=(modal高度-img高度)/2
    3、完成模态布局

实战:优课达登录页
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
  <head>
<!--系统内置 start-->
<script type="text/javascript" src="//qgt-style.oss-cn-hangzhou.aliyuncs.com/commonJSCSS/console.js"></script>
<!--系统内置 end-->
    <meta charset="UTF-8" />
    <link rel="stylesheet" type="text/css" href="./index.css" />
    <title>优课达</title>
  </head>
  <body>
    <div class="modal">
      <img
        class="logo"
        src="https://document.youkeda.com/P3-1-HTML-CSS/1.9/combat-1-modal/9.svg"
      />
      <div class="slogan">学得比别人好一点</div>
      <div class="sep">
        <img
          class="line left"
          src="https://document.youkeda.com/P3-1-HTML-CSS/1.9/combat-1-modal/sep.png"
        />
        <span>请选择登录方式</span>
        <img
          class="line right"
          src="https://document.youkeda.com/P3-1-HTML-CSS/1.9/combat-1-modal/sep.png"
        />
      </div>
      <div class="login-channel wechat">
        <img
          class="icon"
          src="https://style.youkeda.com/img/pizza/weixin.png"
        />
        <p>微信登录</p>
      </div>
      <div class="login-channel qq">
        <img class="icon" src="https://style.youkeda.com/img/pizza/qq.png" />
        <p>QQ登录</p>
      </div>
    </div>
  </body>
</html>
html,
body {
  height: 100%;
  margin: 0;
}

ul,
li {
  margin: 0;
  padding: 0;
}
li {
  list-style: none;
}

h1,
h2 {
  margin: 0;
}

p {
  margin: 0;
  padding: 0;
}

/* 浏览器都有自己的默认样式,以上部分为清除浏览器默认样式 */

html,
body {
  width: 100%;
  height: 100%;
}
body {
  background-image: url(https://document.youkeda.com/P3-1-HTML-CSS/1.8/login-bg.svg);
  background-size: cover;
}

.modal {
  position: fixed;
  top: 50%;
  left: 50%;
  margin-left: -245px;
  margin-top: -201.5px;
  width: 490px;
  height: 403px;
  border-radius: 16px;
  background-color: white;
}

.logo {
  display: block;
  width: 179px;
  height: 64px;
  margin: 0 auto;
  margin-top: 62px;
}

.slogan {
  text-align: center;
  margin-top: 14px;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 7.3px;
  opacity: 0.45;
  color: #3a3a3a;
}

/* 分割线区域 */
.sep {
  margin-top: 40px;
  height: 17px;
}

.left {
  float: left;
  margin-left: 20px;
}

.right {
  float: right;
  margin-right: 20px;
}

.sep > .line {
  width: 163px;
  height: 1px;
  margin-top: 8px;
}

.sep > span {
  display: block;
  float: left;
  text-align: center;
  width: 124px;
  font-size: 12px;
  line-height: 17px;
}

.login-channel {
  margin-top: 40px;
}

.login-channel > .icon {
  display: block;
  width: 64px;
  height: 64px;
}

.login-channel > p {
  margin-top: 20px;
  width: 64px;
  text-align: center;
  font-size: 16px;
  line-height: 22px;
  color: #292929;
}

.wechat {
  float: left;
  margin-left: 116px;
}

.qq {
  float: right;
  margin-right: 116px;
}

9.3 定位实战(二):搜索框

实战:知乎网页头部开发
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
  <head>
<!--系统内置 start-->
<script type="text/javascript" src="//qgt-style.oss-cn-hangzhou.aliyuncs.com/commonJSCSS/console.js"></script>
<!--系统内置 end-->
    <meta charset="UTF-8" />
    <link rel="stylesheet" type="text/css" href="./zhihu.css" />
    <title>知乎</title>
  </head>
  <body>
    <nav class="nav">
      <div class="content">
        <div class="left">
          <img
            class="logo"
            src="https://document.youkeda.com/P3-1-HTML-CSS/1.8/zhihu/zhihu.png"
          />
          <ul class="menu">
            <li class="active">
              首页
              <div class="bottom"></div>
            </li>
            <li>发现</li>
            <li>等你来答</li>
          </ul>
          <div class="search">
            <input type="text" placeholder="美妆博主" />
            <img
              class="search-icon"
              src="https://document.youkeda.com/P3-1-HTML-CSS/1.8/zhihu/search.png"
            />
          </div>
          <button class="ask-btn">提问</button>
        </div>
        <ul class="right">
          <li class="avatar">
            <img
              src="https://document.youkeda.com/P3-1-HTML-CSS/1.8/zhihu/%E4%BD%8D%E5%9B%BE.png"
            />
          </li>
          <li class="message">
            <img
              src="https://document.youkeda.com/P3-1-HTML-CSS/1.8/zhihu/%E6%B6%88%E6%81%AF.png"
            />
          </li>
          <li class="notice">
            <img
              src="https://document.youkeda.com/P3-1-HTML-CSS/1.8/zhihu/%E9%80%9A%E7%9F%A5.png"
            />
          </li>
        </ul>
        <div class="setting">
          <ul>
            <li>
              <img
                src="https://document.youkeda.com/P3-1-HTML-CSS/1.8/zhihu/%E4%B8%AA%E4%BA%BA.png"
              />
              <div>我的主页</div>
            </li>
            <li>
              <img
                src="https://document.youkeda.com/P3-1-HTML-CSS/1.8/zhihu/%E8%AE%BE%E7%BD%AE.png"
              />
              <div>设置</div>
            </li>
            <li class="last">
              <img
                src="https://document.youkeda.com/P3-1-HTML-CSS/1.8/zhihu/%E9%80%80%E5%87%BA.png"
              />
              <div>退出</div>
            </li>
          </ul>
        </div>
      </div>
    </nav>
  </body>
</html>
html,
body {
  height: 100%;
  margin: 0;
}

ul,
li {
  margin: 0;
  padding: 0;
}
li {
  list-style: none;
}

h1,
h2 {
  margin: 0;
}

p {
  margin: 0;
  padding: 0;
}

/* 浏览器都有自己的默认样式,以上部分为清除浏览器默认样式 */

.nav {
  height: 54px;
  border-bottom: 1px solid #eeeeee;
}

.content {
  position: relative;
  width: 1000px;
  margin: 0 auto;
}

.left {
  float: left;
}

.right {
  float: right;
}

.logo {
  width: 64px;
  height: 30px;
  margin-top: 12px;
  margin-right: 40px;
  float: left;
}

ul.menu {
  float: left;
  height: 100%;
}

ul.menu li {
  height: 100%;
  float: left;
  font-weight: 500;
  font-size: 16px;
  line-height: 54px;
  color: #8892a6;
  margin-right: 30px;
}

ul.menu li.active {
  position: relative;
  color: #1c1c1c;
}

ul.menu li.active .bottom {
  position: absolute;
  bottom: 0;
  left: 50%;
  margin-left: -15px;
  width: 30px;
  height: 3px;
  background-color: #1987fb;
}

.search {
  position: relative;
  float: left;
  width: 326px;
  height: 34px;
  margin-top: 10px;
  margin-right: 16px;
  margin-left: 10px;
}

::-webkit-input-placeholder {
  /* WebKit browsers */
  color: #8892a6;
  font-weight: 500;
  font-size: 14px;
}

.search input {
  height: 100%;
  width: 100%;
  box-sizing: border-box;
  background: #f6f6f6;
  border: 1px solid #ebebeb;
  border-radius: 3px;
  padding: 7px 15px;
  font-size: 14px;
}

.search-icon {
  position: absolute;
  right: 15px;
  top: 9px;
  width: 16px;
  height: 16px;
}

.ask-btn {
  width: 58px;
  height: 34px;
  margin-top: 10px;
  text-align: center;
  font-size: 14px;
  line-height: 34px;
  color: #ffff;
  background: #0084ff;
  border: 1px solid #0084ff;
  border-radius: 3px;
}

.avatar {
  float: right;
}

ul.right li {
  float: right;
  margin-left: 36px;
  width: 26px;
  height: 26px;
  margin-top: 14px;
}

ul.right li > img {
  width: 100%;
  height: 100%;
}

ul.right li.avatar {
  width: 30px;
  height: 30px;
  margin-top: 12px;
}

.setting {
  position: absolute;
  right: -52px;
  top: 48px;
  box-sizing: border-box;
  width: 134px;
  height: 122px;
  background: #ffffff;
  border: 1px solid #ebebeb;
  border-radius: 4px;
  padding: 16px 18px 0 18px;
}

.setting ul li {
  margin-bottom: 15px;
  height: 20px;
}

.setting ul li.last {
  margin-bottom: 0;
}

.setting ul li img {
  margin-top: 2px;
  width: 16px;
  height: 16px;
  float: left;
}

.setting ul li div {
  float: left;
  height: 20px;
  font-weight: 500;
  font-size: 14px;
  line-height: 20px;
  color: #8892a6;
  margin-left: 5px;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值