HTML以及CSS相关知识总结(二)

 css文件写样式时建议遵循以下顺序:


1.布局定位属性:display/position/float/ear/visibility/overflow(建议display第一个写,毕竟关系到模式)

2.自身属性: width/height/margin/ padding /border/ background

3.文本属性: color/font / text-decoration/text-align/vertical-align/white- space / break-word

4.其他属性( CSS3 ) : content/cursor / border-radius /box-shadow / text-shadow/ backaround:inear-aradient

页面布局整体思路:

1.必须确定页面的版心(可视区),我们测量可得知。

2.分析页面中的行模块,以及每个行模块中的列模块。其实页面布局第一准则.

3.一行中的列模块经常浮动布局,先确定每个列的大小之后确定列的位置,页面布局第二准则

实际开发中,导航栏不会直接用链接a 而是用 li 包含链接(i+a)的做法:

1.li+a语义更清晰,一看这就是有条理的列表型内容。

2.如果直接用a,搜索引容易辨别为有堆砌关健字嫌疑(故意堆砌关健字容易被搜索引擎有降权的风险)从而影响网站排名

注意:导航栏一般不加宽度,防止后续会继续添加文字,给导航栏里的每个li里的a设置左右padding即可,给li设置浮动,这样会使a的区域会随着文字的长短变化

  •  浮动,绝对定位的盒子不会有外边距合并问题
  • 若制作页面时可视区域基本制作完成,继续制作时就会在下方狭窄区域制作,此时观感不太理想,这时可给body设置一个尽可能大的高度,此时页面就会出现一个滚动条,制作接下来的页面时会增大空白页面区域。使用ctrl+g输入使css页面回至最顶端,修改body样式即可。
  • 如果要插入的图片比预留的空间大或者小,就直接设置img的width为100%,即宽度正好适应父元素宽度

定位:

  • 静态定位是元素的默认定位方式,无定位的意思。
  • 语法∶选择器{ position : static; }
  • 静态定位按照标准流特性摆罢放位置,它没有边偏移,静态定位在布局时很少用到
  • 相对定位是元素在移动位置的时候,是相对于它原来的位置来说的(自恋型)。
  • 语法::选择器{ position: relative; }
  • 相对定位的特点
  1. 它是相对于自己原来的位置来移动的(移动位置的时候参照点是自己原来的位置)。
  2. 原来在标准流的位置继续占有,后面的盒子仍然以标准流的方式对待它。(不脱标,继续保留原来位置)

  • 绝对定位是元素在移动位置的时候,是相对于它祖先元素来说的(拼爹型)。
  • 语法∶选择器{ position: absolute; }
  • 绝对定位的特点
  1. 如果没有祖先元素或者祖先元素没有定位,则以浏览器为准定位(Document文档)。
  2. 如果祖先元素有定位(相对、绝对、固定定位),则以最近一级的有定位祖先元素为参考点移动位置。
  3. 绝对定位不再占有原先的位置。(脱标)
  4. 绝对定位的盒子可以直接设置宽高

子绝父相:

绝对定位和相对定位的使用场景。
“子绝父相”,是定位中最常用的一种方式这句话的意思是∶子级是绝对定位的话,父级要用相对定位。
①子级绝对定位,不会占有位置,可以放到父盒子里面的任何一个地方,不会影响其他的兄弟盒子。

②父盒子需要加定位限制子盒子在父盒子内显示。
③父盒子布局时,需要占有位置,因此父亲只能是相对定位。
这就是子绝父相的由来,所以相对定位经常用来作为绝对定位的父级。

固定定位是元素固定于浏览器可视区的位置。主要使用场景∶可以在浏览器页面滚动时元素的位置不会改变。

语法 : 选择器{ position: fixed; }
固定定位的特点:
1.以浏览器的可视窗口为参照点移动元素。

  • 跟父元素没有任何关系
  • 不随滚动条滚动。

2.固定定位不再占有原先的位置。

  • 固定定位也是脱标的,其实固定定位也可以看做是一种特殊的绝对定位。
  • 固定定位小技巧:固定在版心右侧位置

小算法︰

  1. 让固定定位的盒子left:50%.走到浏览器可视区(也可以看做版心)的一半位置。
  2. 让固定定位的盒子margin-left:版心宽度的一半距离。多走版心宽度的一半位置就可以让固定定位的盒子贴着版心右侧对齐了。
    <style>
        .banxin{
            width: 800px;
            height: 1000px;
            margin: 0 auto;
            background-color: antiquewhite;
        }
        .fixed {
            position: fixed;
            left: 50%;
            top: 50%;
            margin-left: 400px;
            width: 50px;
            height: 100px;
            background-color: aquamarine;
        }
    </style>

<body>
    <div class="banxin"></div>
    <div class="fixed"></div>
</body>

粘性定位sticky :
粘性定位可以被认为是相对定位和固定定位的混合。Sticky:粘性的
语法:选择器{ position: sticky; top: 10px; }

  1. 以浏览器的可视窗口为参照点移动元素(固定定位特点)
  2. 粘性定位占有原先的位置(相对定位特点)
  3. 必须添加top、left、right、bottom其中一个才有效跟页面滚动搭配使用。

兼容性较差,IE不支持。

    <style>
         .sticky {
            position: sticky;
            margin-top: 100px;
            width: 800px;
            height: 50px;
            top: 10px;
            /* <!--当鼠标滑动至离最上方10px时,就粘在上方不会消失--> */
            background-color: blue;
        }
        body {
            height: 3000px;
        }
    </style>
<body>
    <div class="sticky"></div>
</body>

定位叠放次序 z-index


在使用定位布局时,可能会出现盒子重叠的情况。此时,可以使用z-index来控制盒子的前后次序(z轴)
语法∶选择器{ z-index: l; }

  • 数值可以是正整数、负整数或0,默认是auto,数值越大,盒子越靠上如果属性值相同,则按照书写顺序,后来居上
  • 数字后面不能加单位
  • 只有定位的盒子才有z-index属性

绝对定位的盒子居中

加了绝对定位的盒子不能通过margin:0auto水平居中,但是可以通过以下计算方法实现水平和垂直居中。

  1. left: 50%;:让盒子的左侧移动到父级元素的水平中心位置。
  2. margin-left: -100px; :让盒子向左移动自身宽度的一半。
  3.  <style>
            .abso {
                position: absolute;
                left: 50%;
                margin-left: -100px;
                width: 200px;
                height: 200px;
                background-color: aquamarine;
    
            }
        </style>
    
    <body>
        <div class="abso"></div>
    </body>

定位特殊特性:
绝对定位和固定定位也和浮动类似。
1.行内元素添加绝对或者固定定位,可以直接设置高度和宽度。
2.块级元素添加绝对或者固定定位,如果不给宽度或者高度,默认大小是内容的大小。

  •  浮动元素与绝对定位(固定定位)元素不同,它只会压住它下面标准流的盒子,但是不会压住下面标准流盒子里面的文字,但是定位会完全压住下面标准流所有的内容
  • 浮动之所以不会压住文字,因为浮动产生的目的最初是为了做文字环绕效果的。文字会围绕浮动元素

 display 属性

  • display属性用于设置一个元素应如何显示。
  • display: none ;隐藏对象
  • display : block ;除了转换为块级元素之外,同时还有显示元素的意思display隐藏元素后,不再占有原来的位置。

 visibility可见性

  • visibility属性用于指定一个元素应可见还是隐藏。visibility : visible;元素可视
  • visibility : hidden;元素隐藏
  • visibility隐藏元素后,继续占有原来的位置
  • 如果隐藏元素想要原来位置,就用visibility : hidden
  • 如果隐藏元紊不想要原来位置,就用display : none 

overflow 溢出

overflow属性指定了如果内容溢出一个元素的框(超出其指定宽度及高度)时,会发生什么。

属性值

描述

visible不剪切内容也不添加滚动条
hidden不显示超过对象尺寸的内容,超出的部分隐藏掉
scroll不管超出内容与否,总显示滚动条  
auto超出自动显示滚动条,不超出不显示滚动条

  • 一般情况下,都不想让溢出的内容显示出来,因为溢出的部分会影响布局
  • 如果有定位的盒子,请慎用overflow:hidden,因为它会隐藏掉多余的部分

精灵图( sprites )的使用


使用精灵图核心∶

  1. 精灵技术主要针对于背景图片使用。就是把多个小背景图片整合到一张大图片中。
  2. 这个大图片也称为sprites 精灵图或者雪碧图
  3. 移动背景图片位置,此时可以使用background-position 。
  4. 移动的距离就是这个目标图片的x和y坐标。注意网页中的坐标有所不同
  5. 因为一般情况下都是往上往左移动,所以数值是负值。
  6. 使用精灵图的时候需要精确测量,每个小背景图片的大小和位置。

            background: url(image/s1.jpg) no-repeat -180px 0;

CSS三角形

案例:

<style>
    .r {
        width: 300px;
        height: 150px;
        background-color: antiquewhite;
        position: relative;
        margin-top: 100px;
    }
    .s {
        position: absolute;
        top: -20px;
        left: 125px;
        width: 0;
        height: 0;
        border: 10px solid transparent;
        border-bottom-color: pink;
    }
</style>
<body>
    
    <div class="r">
        <div class="s">

        </div>
    </div>
</body>

鼠标样式cursor


li {cursor: pointer; }
设置或检索在对象上移动的鼠标指针采用何种系统预定义的光标形状。
 

属性值描述
default小白默认
pointer小手
move移动
text文本
not-allowed禁止

轮廓线outline


给表单添加outline:0;或者 outline: none;样式之后,就可以去掉默认的蓝色边框。
input { outline: none; }

防止拖拽文本域resize


实际开发中,文本域右下角是不可以拖拽的。
textarea{ resize: none; }

:文本域代码尽量写到一行上,否则文本域初始收集信息之前会有空白部分

vertical-align属性应用

  • CSS的vertical-align属性使用场景∶经常用于设置图片或者表单(行内块元素)和字垂直对齐。
  • 官方解释∶用于设置一个元素的垂直对齐方式,但是它只针对于行内元素或者行内块元素有效。
  • 语法∶vertical-align : baseline |top l middle l bottom
将图片设置为vertical-align:middle,可将文字垂直居中
描述
baseline默认。元素放置在父元素的基线上。
top把元素的顶端与行中最高元素的顶端对齐
middle把此元素放置在父元素的中部。
bottom把元素的顶端与行中最低的元素的顶端对齐。

多行文本溢出显示省略号


多行文本溢出显示省略号,有较大兼容性问题,适合于webKit浏览器或移动端(移动端大部分是webkit内核)

overflow : hidden;
text-overflow: ellipsis;

/ *弹性伸缩盒子模型显示*/

display: -webkit-box ;
/*限制在一个块元素显示的文本的行数*/

-webkit-line-clamp:2;
/*设置或检索伸缩盒对象的子元素的排列方式*/

-webkit-box-orient : vertical;

 目前较为通用的方法是不换行+溢出隐藏+溢出用原点代替

    white-space: nowrap;
    overflow: hidden;
    /* 溢出用原点代替 */
    text-overflow: ellipsis;
  • 多个盒子浮动时,若有边框,则相邻边框会紧挨使其变粗,可给每个盒子加上margin-left:-1px,此时就会发现解决边框变粗问题。
  • 之后设置鼠标悬浮在盒子上时,聚焦边框,若有定位就加z-index: 1 ,若li没有定位,就加相对定位占据位置。position: relative;
    <style>
        ul li{
            position: relative;
            float: left;
            list-style: none;
            height: 100px;
            width: 50px;
            border: 1px solid green;
            margin-left: -1px;
            box-sizing: border-box;
        }
        ul li:hover {
            /* 若有定位就加z-index: 1 */
            z-index: 1;
            /* position: relative; 若li没有定位,就加相对定位占据位置*/
            border: 1px solid red;
        }
    </style>
<body>
    <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
</body>

文字围绕浮动元素

若要完成以上布局,可将图片设置为左浮动,文字所在元素会朝上放置,但是文字不会被覆盖,为图片设置margin-right即可增大图片与文字的距离。

    <style>
        * {
            padding: 0;
            margin:0;
        }
        .box {
            width: 200px;
            height: 100px;
            background-color: antiquewhite;
            padding: 5px;
            font-size: 12px;

        }
        .box img {
            float: left;
            height: 100%;
            margin-right: 5px;
        }
    </style>
<body>
    <div class="box">
        <img src="../酷狗实战/img/c5.jpg" alt="">
        <p>将图片设置为左浮动,文字所在元素会朝上放置,但是文字不会被覆盖,</p>

    </div>

CSS三角形强化

    <style>
        .box1 {
             width: 0;
                height: 0;
            /*把上边框宽度调大*/
            border-top: 100px solid transparent;
            border-right: 50px solid skyblue;
            /*左边和下边的边框宽度设置为0*/
            border-bottom: 0 solid blue;
            border-left: 0 solid green;
        }
        /* .box1 {
            border-color: transparent red transparent transparent;
            border-style: solid;
            border-width: 100px 50px 0 0;
        } */
    </style>
<body>
    <div class="box1"></div>
</body>

案例:

    <style>
        .clearfix::after {
            content: "";
            display: block;
            clear: both;
        }
        .box {
            width: 140px;
            margin: 0 auto;
            border: 1px solid red;
        }
        .box .miaosha {
            position: relative;
            float: left;
            width: 70px;
            height: 20px;
            line-height: 20px;
            text-align: center;
            background-color: red;
        }
        .box .yuanjia {
            float: left;
            width: 70px;
            height: 20px;
            line-height: 20px;
            text-align: center;
            color: #ccc;
            font-size: 12px;
            text-decoration: line-through;
        }
        .box .miaosha i {
            position: absolute;
            top:0;
            right: 0;
            width: 0;
            height: 0;
            border-color:transparent white transparent transparent;
            border-style: solid;
            border-width: 20px  10px 0 0;
        }
    </style>
<body>
    <div class="box clearfix">
        <span class="miaosha">
            1690.00
        <i></i>
        </span>
        <span class="yuanjia">2000.00</span>
    </div>
</body>

PS切图:

1.jpg图像格式:JPEG(JPG)对色彩的信息保留较好,高清,颜色较多,产品类的图片经常用jpg格式的
2.gif图像格式:GIF格式最多只能储存256色,所以通常用来显示简单图形及字体,但是可以保存透明背景和动画效果,实际经常用于一些图片小动画效果
3.png图像格式是一种新兴的网络图形格式,结合了GIF和JPEG的优点,具有存储形式丰富的特点,能够保持诱明背景.如果想要切成背景透明的图片,请选择png格式
4.PSD图像格式PSD格式是Photoshop的专用格式,里面可以存放图层、通道、遮置等多种设计稿.对前端人员来说,最大的优点我们可以直接从上面复制文字,获得图片,还可以测量大小和距离

图层切图:最简单的切图方式

  • 用选择工具选中背景,找到相对应的图层,右击图层,快速导出为PNG.
  • 如果要导出的图片由两个图层组成,但是我们只需要两张图层合在一起的图片,这时就要合并图层。

合并图层:

点击其中一个图层,按住shift键再点击另一个图层,即同时选中两个图层,之后点击图层菜单,选中图层菜单里的合并图层,快捷键为ctrl+e,即同时选中两个图层之后按ctrl+e就可直接合并图层

切片工具 

选中该图标之后选中想要的区域,点击文件->导出->存储为Web所用格式

将文件格式改为 JPEG形式,之后点击下方存储

 注意下方切片选择选中的切片,保存即可

导出透明背景的图片,找到图层工具栏,下滑至最底端有个背景,点击前方的眼睛,点击后眼睛消失,同时页面背景会变成

如图所示的效果,此时再利用切片工具导出即可 

导出透明背景时,要将文件格式改为PNG-24,才可将选中区域的背景也设置为透明色

pxcook使用方法:

放大缩小与ps一致,ctrl+加号放大,缩小同理示例

移动图片:按住空格之后移动鼠标 

区域像素大小:psd文件点击之后会有该区域的像素大小

两个区域的距离(通常是外边距,上下左右均可):点击其中一个区域,一直将鼠标拖至另一个区域,此时会自动显示出二者之间的距离,也可使用测量工具直接拖动鼠标测量想测量的距离。

得知文字大小以及颜色,选中上方开发,之后点击文字即可,右边会显示出该文字相关属性

坐标点标注:一般是用于测定精灵图里某个图案的位置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/350853.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

区块链中分叉机制

在区块链中我们经常会听到分叉【fork】的概念&#xff0c;今天通过这篇文章来详细的介绍下分叉 什么是分叉 在介绍区块链的分叉机制中&#xff0c;我们以公有链来说明&#xff0c;公有链是去中心化的。任何协议的改变都是代价巨大的&#xff0c;因为全网那么多节点&#xff0…

国产GC6610应用于打印机,医疗器械等产品中,可替代TMC2208/2209/trinamic的参数分析

电机驱动芯片应用范围十分广泛&#xff0c;目前已经广泛应用于消费电子、电动工具、打印机、3D打印、安防监控、通信设备、汽车&#xff0c;以及工业控制等领域。据市场调研机构ResearchAndMarkets统计&#xff0c;2021年全球电机驱动芯片是市场规模为38.8亿美元&#xff0c;预…

uniapp小程序:内存超过2mb解决方法(简单)message:Error: 上传失败:网络请求错误 代码包大小超过限制。

分析&#xff1a;这种情况是代码文件内存超过2mb无法进行预览上传 解决方法&#xff1a; 1、Hbuilder中点击运行-->运行到小程序模拟器--->运行时是否压缩代码 2、在微信小程序中点击详情--->本地设置&#xff1a; 3、点击预览即可运行了

Java通过模板替换实现excel的传参填写

以模板为例子 将上面$转义的内容替换即可 package com.gxuwz.zjh.util;import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.*; import java.util.HashMap; import java.util.Map; import java.io.IOException; impor…

vue3 常见的路由传参无刷新修改当前路由url带参

无刷新修改当前路由url带参 //tabs切换部分 <el-tabs v-model"activeName" class"demo-tabs" tab-click"handleClick"><el-tab-pane v-for"(item,index) in tagList" :label"item.title" :name"item.name…

4-4 D. 银行排队问题之单队列多窗口加VIP服务

题目描述 假设银行有K个窗口提供服务&#xff0c;窗口前设一条黄线&#xff0c;所有顾客按到达时间在黄线后排成一条长龙。当有窗口空闲时&#xff0c;下一位顾客即去该窗口处理事务。当有多个窗口可选择时&#xff0c;假设顾客总是选择编号最小的窗口。 有些银行会给VIP客户以…

gitee仓库使用中的警告

当 Git 执行 git pull 命令时&#xff0c;有时候会出现类似下面的警告信息&#xff1a; warning: ----------------- SECURITY WARNING ---------------- warning: | TLS certificate verification has been disabled! | warning: ------------------------------------------…

计算机毕业设计 基于SpringBoot的线上心理咨询室系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

Ceph分布式存储自动化运维平台开发实践

文章目录 1. 背景介绍1.1 什么是Ceph&#xff1f;1.1.1 Ceph的核心组件1.1.2 Ceph的优势 1.2 自动化运维的需求目标 2. 平台架构设计和组件版本2.1 平台架构设计2.2 组件版本2.3 模块划分&#xff08;已经脱敏处理&#xff09;2.3.1 当前版本V1.0支持功能2.3.2 前后端代码结构t…

勤学苦练“prompts“,如沐春风“CodeArts Snap“

前言 CodeArts Snap 上手一段时间了&#xff0c;对编程很有帮助。但是&#xff0c;感觉代码编写的不尽人意。 我因此也感到困惑&#xff0c;想要一份完整的 CodeArts Snap 手册看看。 就在我感觉仿佛"独自彷徨在这条悠长、悠长又寂寥的雨巷"时&#xff0c;我听了大…

Transformers Tutorial教程3-7

Introduction Transformers库的一个使用&#xff0c;用这个库就可以很轻松地去使用和训练自己的一个预训练语言模型。 outline 介绍什么是Transformers&#xff0c;为什么要用它 介绍一些比较常用的接口 最后会给出一个demo&#xff0c;帮助你们快速地入门 what is Transf…

重装Windows系统出现Windows无法安装到这个磁盘,选中的磁盘采用GPT分区

文章目录 1.问题描述2.问题解决 1.问题描述 重装Windows系统时&#xff0c;出现Windows无法安装到这个磁盘&#xff0c;选中的磁盘采用GPT分区这个提示 2.问题解决 1.shiftF10&#xff0c;打开命令行 2.输入&#xff1a;diskpart (打开分区工具) 3.输入&#xff1a;list di…

分享5款专注于实用功能的小众软件

​ 电脑上的各类软件有很多&#xff0c;除了那些常见的大众化软件&#xff0c;还有很多不为人知的小众软件&#xff0c;专注于实用功能&#xff0c;简洁干净、功能强悍。 1.视频播放——Potplayer ​ Potplayer是一款功能强大的视频播放软件&#xff0c;支持各种格式的视频文…

14:00面试,14:06就出来了,问的问题过于变态了。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到5月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

Web10--jQuery进阶

1、DOM操作 1.1 操作内容 方法 描述 text() 获取/设置元素的标签体纯文本内容 html() 获取/设置元素的标签体超文本内容 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>操作内容</title><style>div{w…

easypoi导出Word中,表格分页时上边框丢失

问题具体描述: 使用easypoi导出的Word中包含一个表格&#xff0c;表格行数较多&#xff0c;需要分页显示&#xff0c;在分页后第一行的上边框部分丢失&#xff0c;显示不美观&#xff0c;具体如下: 解决: 对表格中每行都添加一个上边框&#xff0c;具体如下: XWPFDocument do…

【蓝桥杯冲冲冲】贪心算法进阶之删数问题

蓝桥杯备赛 | 洛谷做题打卡day17 文章目录 蓝桥杯备赛 | 洛谷做题打卡day17删数问题题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1我们的思路是这样的&#xff1a; 题解代码我的一些话 删数问题 题目描述 键盘输入一个高精度的正整数 N N N&#xff08;不超过 25…

掌握可视化大屏:提升数据分析和决策能力的关键(下)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Tosei 自助网络店铺管理系统network_test.php_RCE漏洞复现

简介 Tosei 自助洗衣机是日本一家公司的产品,在 network_test.php 文件存在命令执行 漏洞复现 FOFA语法: body="tosei_login_check.php" 主要是日本 访问界面如下所示: 验证POC: /cgi-bin/network_test.php 拼接访问url: https://ip:port/cgi-bin/network_tes…

Redis6基础知识梳理~

初识NOSQL&#xff1a; NOSQL是为了解决性能问题而产生的技术&#xff0c;在最初&#xff0c;我们都是使用单体服务器架构&#xff0c;如下所示&#xff1a; 随着用户访问量大幅度提升&#xff0c;同时产生了大量的用户数据&#xff0c;单体服务器架构面对着巨大的压力 NOSQL解…