重学JavaWeb第二天(四)

简介: 重学JavaWeb第二天

绝对定位的布局

  • 水平布局

布局公式left + margin-left + border-left + padding-left + width + padding-right + border-right + margin-right + right = 包含块的内容区的宽度

当我们开启了绝对定位后:

水平方向的布局等式就需要添加left 和 right 两个值

此时规则和之前一样只是多添加了两个值:

当发生过度约束(即上面等式不成立):

如果9个值中没有 auto 则自动调整right值以使等式满足

如果有auto,则自动调整auto的值以使等式满足,如果都是aotu调整顺序:宽高>偏移量>外边距


  - 可设置auto的值
       margin width left right
          - 因为**left 和 right的值默认是auto**,所以如果不指定left和right则等式不满足时,会自动调整这两个值

垂直方向布局的等式的也必须要满足

top + margin-top/bottom + padding-top/bottom + border-top/bottom + height = 包含块的高度

<div class="box1">
    <div class="box2"></div>
</div>
.box1{
            width: 500px;
            height: 500px;
            background-color: #bfa;
            position: relative;
        }
        .box2{
            width: 100px;
            height: 100px;
            background-color: orange;
            position: absolute;
            margin: auto;
            left: 0;
             right: 0;
             top: 0;
             bottom: 0;
        }

image-20200501084130761.png

固定定位

固定定位:

将元素的position属性设置为fixed则开启了元素的固定定位

固定定位也是一种绝对定位,所以固定定位的大部分特点都和绝对定位一样

唯一不同的是固定定位永远参照于浏览器的视口进行定位

固定定位的元素不会随网页的滚动条滚动

<div class="box1">1</div>
    <div class="box4">
        4
        <div class="box5">
            5
            <div class="box2">2</div>
        </div>
    </div>
    <div class="box3">3</div>
body{
            font-size: 60px;
            height: 2000px;
        }
        .box1{
            width: 200px;
            height: 200px;
            background-color: #bfa;
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color: orange;
            position: fixed;
            left: 0;
            top: 0;
        }
        .box3{
            width: 200px;
            height: 200px;
            background-color: yellow;
        }
        .box4{
            width: 400px;
            height: 400px;
            background-color: tomato;
        }
        .box5{
            width: 300px;
            height: 300px;
            background-color: aliceblue;
        }

image-20200501081700863.png

粘滞定位

粘滞定位

  • 当元素的position属性设置为sticky时则开启了元素的粘滞定位一致,不同的是粘滞定位可以在元素到达某个位置时将其固定
  • 不推荐使用,兼容性不高
<!-- 创建导航条的结构 -->
    <ul class="nav">
        <li>
            <a href="#">HTML/CSS</a>
        </li>
        <li>
            <a href="#">Browser Side</a>
        </li>
        <li>
            <a href="#">Server Side</a>
        </li>
        <li>
            <a href="#">Programming</a>
        </li>
        <li>
            <a href="#">XML</a>
        </li>
        <li>
            <a href="#">Web Building</a>
        </li>
        <li>
            <a href="#">Reference</a>
        </li>
    </ul> 
body{
            height: 3000px;
        }
        .nav{
            width: 1210px;
            height: 48px;
            background-color: #E8E7E3;
            margin:100px auto;
             position: sticky;
             top: 10px;
        }
        /* 设置nav中li */
        .nav li{
            float: left;
            line-height: 48px;
        }
        /* 设置a的样式 */
        .nav a{
            display: block;
            text-decoration: none;
            color: #777777;
            font-size: 18px;
            padding: 0 39px;
        }
        .nav li:last-child a{
            padding: 0 42px 0 41px;
        }
        /* 设置鼠标移入的效果 */
        .nav a:hover{
            background-color: #3F3F3F;
            color: #E8E7E3;
        }


66debbba9d6bfca1cc4e586de05d4bec.png

练习

仿京东

6a09c52bcece1cd33edb473ade7b7cda.png

字体与文字

文字字体

字体相关的样式

color 用来设置字体颜色
                font-size 字体的大小
                    和font-size相关的单位
                    em 相当于当前元素的一个font-size
                    rem 相对于根元素的一个font-size
                font-family 字体族(字体的格式)
                    可选值:
                        serif  衬线字体
                        sans-serif 非衬线字体
                        monospace 等宽字体
                        - 指定字体的类别,浏览器会自动使用该类别下的字体
            - font-family 可以同时指定多个字体,多个字体间使用,隔开
                字体生效时优先使用第一个,第一个无法使用则使用第二个 以此类推
font-family: 'Courier New', Courier, monospace;

使用网络字体

font-face可以将服务器中的字体直接提供给用户去使用

问题:

1.加载速度

2.版权

3.字体格式

@font-face {
                /* 指定字体的名字 */
            font-family:'myfont' ;
            /* 服务器中字体的路径 */
            src: url('./font/ZCOOLKuaiLe-Regular.ttf') format("truetype");
        }

图标字体

图标字体(iconfont)

  • 在网页中经常需要使用一些图标,可以通过图片来引入图标
    但是图片大小本身比较大,并且非常的不灵活
  • 所以在使用图标时,我们还可以将图标直接设置为字体,
    然后通过font-face的形式来对字体进行引入

这样我们就可以通过使用字体的形式来使用图标

fontawesome 使用步骤

1.下载 https://fontawesome.com/
        2.解压
        3.将css和webfonts移动到项目中
        4.将all.css引入到网页中
        5.使用图标字体
        - 直接通过类名来使用图标字体
            class="fas fa-bell"
            class="fab fa-accessible-icon"

通过实体来使用图标字体: &#x+图标的编码;

    <i class="fas fa-camera"></i>
    <span class="fas"></span>
    <link rel="stylesheet" href="./fa/css/all.css">

阿里图标库 使用步骤

使用帮助:https://www.iconfont.cn/help/detail?spm=a313x.7781069.1998910419.d8cf4382a&helptype=code
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
@font-face {
  font-family: 'iconfont';  /* project id 1794617 */
  src: url('//at.alicdn.com/t/font_1794617_m4rwwizrot.eot');
  src: url('//at.alicdn.com/t/font_1794617_m4rwwizrot.eot?#iefix') format('embedded-opentype'),
  url('//at.alicdn.com/t/font_1794617_m4rwwizrot.woff2') format('woff2'),
  url('//at.alicdn.com/t/font_1794617_m4rwwizrot.woff') format('woff'),
  url('//at.alicdn.com/t/font_1794617_m4rwwizrot.ttf') format('truetype'),
  url('//at.alicdn.com/t/font_1794617_m4rwwizrot.svg#iconfont') format('svg');
}
.iconfont{
    font-family:"iconfont" !important;
    font-size:16px;font-style:normal;
    -webkit-font-smoothing: antialiased;
    -webkit-text-stroke-width: 0.2px;
    -moz-osx-font-smoothing: grayscale;}
    </style>
</head>
<body>
    <i class="iconfont"></i>
    <i class="iconfont"></i>
</body>
</html>

图标字体库

行高

行高(line height)

  • 行高指的是文字占有的实际高度
  • 通过
line-height

来设置行高

行高可以直接指定一个大小(px em),也可以直接为行高设置一个整数

可以通过line-h - 如果是一个整数的话,行高将会是字体大小的指定的倍数

行高经常还用来设置文字的行间距

行间距 = 行高 - 字体大小

字体框
                - 字体框就是字体存在的格子,设置font-size实际上就是在设置字体框的高度
行高会在字体框的上下平均分配

可以将行高设置为和高度一样的值,使单行文字在一个元素中垂直居中 line-height: 200px;

div{
            height: 100px;
            border: 1px red solid;
            line-height: 100px;
        }
 <div class="box1">漳卅的那个散发的zhgnasdngaa</div>
    <div class="box1">漳卅的那个散发的zhgnasdngaa</div>

eebcad26911ff2062fd1873b59fbc9c8.png

字体简写属性

如果使用简写属性,除设置的属性外所有字体属性均重置为默认值

div{
            border: 1px red solid;
            /* 
                font 可以设置字体相关的所有属性
                    语法:
                        font: 字体大小/行高 字体族
                        行高 可以省略不写 如果不写使用默认值
            */
            /* font-size: 50px;
            font-family: 'Times New Roman', Times, serif; */
            font-weight: bold;
            /* font: 50px/2  微软雅黑, 'Times New Roman', Times, serif; */
            /* font: normal normal 50px/2  微软雅黑, 'Times New Roman', Times, serif; */
            font: bold italic 50px/2  微软雅黑, 'Times New Roman', Times, serif;
            /* font:50px 'Times New Roman', Times, serif;
            line-height: 2; */
            /* font-size: 50px; */
        }

文字常用属性

font-weight自重

  • normal 默认值 不加粗
  • bold 加粗
  • 100-900 九个级别(没什么用)
font-weight: bold;

font-style 字体风格

  • normal 正常的
  • italic 斜体
font-style: italic;

text-align 文本对齐方式

  • left 左侧对齐
  • right 右对齐
  • center 居中对齐
  • justify 两端对齐
text-align: justify;

vertical-align 元素垂直对齐方式

  • baseline 默认值 基线对齐
  • top 顶部对齐
  • bottom 底部对齐
  • middle 居中对齐
vertical-align:baseline;

text-decoration 设置文本修饰

  • none 什么都没有
  • underline 下划线
  • line-through 删除线
  • overline 上划线
text-decoration: overline;

white-space 设置网页如何处理空白

  • normal 正常
  • nowrap 不换行
  • pre 保留空白
white-space: nowrap;


目录
相关文章
|
18天前
|
Web App开发 SQL Java
javaweb实现分页(二)
javaweb实现分页(二)
23 1
|
18天前
|
SQL 关系型数据库 MySQL
javaweb实现分页查询(一)
javaweb实现分页查询(一)
20 0
|
18天前
|
SQL 关系型数据库 MySQL
javaweb中实现分页,持续更新……
javaweb中实现分页,持续更新……
26 1
|
18天前
|
JSON Java 应用服务中间件
JavaWeb项目之乱码问题及如何解决
JavaWeb项目之乱码问题及如何解决
|
18天前
|
Java Spring 容器
[JavaWeb]——过滤器filter与拦截器Interceptor的使用、执行过程、区别
[JavaWeb]——过滤器filter与拦截器Interceptor的使用、执行过程、区别
|
18天前
JavaWeb 开发之 ServletContext 的和使用
JavaWeb 开发之 ServletContext 的和使用
28 1
|
9天前
|
存储 Java 数据库
学妹哭着找你教的Javaweb的文件上传与下载
该内容主要介绍了JavaWeb中的文件上传和下载操作。首先,通过一个JSP表单接收用户输入的图书信息和封面照片,表单数据提交给`AddBookServlet`。在Servlet中,使用SmartUpload库处理上传的图片,将图片以书号命名并保存至服务器,同时将图书信息存储到数据库。之后,请求转发到`ShowBook.jsp`展示所添加图书的详细信息。文件下载部分,通过`downServlet`完成,用户点击链接触发下载,Servlet设置响应头以附件形式提供文件下载。
23 1
|
9天前
|
SQL Java 关系型数据库
JavaWeb(JDBC编程)看这一篇就够了 —— 如何使用Java操作mysql数据库
JavaWeb(JDBC编程)看这一篇就够了 —— 如何使用Java操作mysql数据库
8 0
|
18天前
|
Java 程序员 应用服务中间件
JavaWeb之过滤器(Filter)与监听器(Listener)
本文介绍了JavaWeb中的过滤器(Filter)和监听器(Listener)概念及其使用。过滤器主要用于拦截和处理Web资源请求,如进行编码设置、权限验证等,它在Servlet之前和之后执行。监听器则监听域对象(如ServletRequest、HttpSession、ServletContext)状态变化,分为创建/销毁监听和属性变化监听。监听器在Web.xml中注册后会在相应事件发生时自动执行,例如用于统计网站访问人数或初始化配置。
|
18天前
|
JavaScript 前端开发
javaweb文件上传和下载
javaweb文件上传和下载