当前位置: 首页 > news >正文

CSS 设置背景图片

文章目录

    • 设置背景颜色
    • 设置背景图片
      • 背景图片偏移量计算原点
      • 背景图片尺寸
      • 设置背景图片位置
      • 设置背景图片重复方式
      • 设置背景范围
      • 设置背景图片是否跟随元素移动
      • 测试背景图片

本文概念部分参考:CSS背景background设置

设置背景颜色

  • background-color 设置背景颜色

设置背景图片

  • background-image 设置背景图片(背景图片将会盖在背景颜色上方)
    • 如果背景图片大小小于元素,则背景图片会自动在元素中平铺将元素铺满(图片重复的超出元素的部分将会被裁剪掉)
    • 如果背景图片大小大于元素,则背景图片一部分会无法完全显示(图片多余的超出元素部分将会被裁剪掉)
    • 如果背景图片大小等于元素,则背景图片会直接正常显示
    • 可以同时设置背景图片和背景颜色,这样背景颜色将会成为图片的背景色

背景图片偏移量计算原点

  • background-origin 背景图片的偏移量计算的原点
    • border-box 背景图片的变量从边框处开始计算
    • padding-box 默认值,background-position从内边距处开始计算
    • content-box 背景图片的偏移量从内容区处计算

注意:经过测试,它是第一张图片的左上角到元素左上角的距离(第一张的意思是:在图片repeat铺满之前)。如果是border-box,那就是第一张图片的左上角到元素边框靠外面的哪那个左上角的距离。如果是padding-box,那就是到padding靠外面那个左上角的距离。如果是content-box,那就是到content左上角的距离。

背景图片尺寸

  • background-size 用来调整背景图像的尺寸大小。

    • 第一个值表示宽度,第二个值表示高度;如果只写一个,则第二个值默认是auto(即表示第二个值等比例缩放)
    • cover 图片的比例不变,将元素铺满
    • contain 图片比例不变,将图片在元素中完整显示
  • 补充:

background-size 指定背景图像大小,以象素或百分比显示,当指定为百分比时,大小会由所在区域的宽度、高度以及
background-origin(图片的起始位置) 的位置决定,还可以通过 cover 和 contain 来对图片进行伸缩。

如:background-size : contain | cover | 100px 100px | 50% 100%;

background-size:contain; // 缩小图片来适应元素的尺寸(保持像素的长宽比);
background-size :cover; // 扩展图片来填满元素(保持像素的长宽比);
background-size :100px 100px; // 调整图片到指定大小; background-size :50%
100%; // 调整图片到指定大小,百分比相对于"包含元素"的尺寸。

设置背景图片位置

  • background-position 设置背景图片的位置

    • 通过top-center-bottom,left-center-right这 几个表示方位的词来设置背景图片的位置:使用方位词时必须要同时指定两个值,如果只写一个则第二个默认就是center
    • 通过偏移量来指定背景图片的位置:水平方向偏移量、垂直方向变量
  • background-position百分比原理

    • 等价写法

top left, left top 等价于 0% 0%.
top, top center, center top 等价于 50% 0%.
right top, top right 等价于 100% 0%.
left, left center, center left 等价于 0% 50%.
center, center center 等价于 50% 50%.
right, right center, center right 等价于 100% 50%.
bottom left, left bottom 等价于 0% 100%.
bottom, bottom center, center bottom 等价于 50% 100%.
bottom right, right bottom 等价于 100% 100%.

  • background-position百分比计算公式

background-postion:x y;
x:{容器(container)的宽度—背景图片的宽度}*x百分比,超出的部分隐藏。
y:{容器(container)的高度—背景图片的高度}*y百分比,超出的部分隐藏。

如上通过设置百分比和关键字能实现背景图居中,如果要实现通过具体值来设置图片居中该设置多少?

根据上面公式:

x=(容器的宽度-背景图宽度)*x百分比=(300px-200px)*50%=50px;
y=(容器的高度-背景图高度)*y百分比=(300px-200px)*50%=50px;

即设置background-postion:50px 50px;

效果同样居中。

设置背景图片重复方式

  • background-repeat 设置背景图片的重复方式
    • repeat 默认值,背景图片沿着 x 轴和 y 轴双方向重复
    • repeat-x 背景图片沿着 x 轴方向重复
    • repeat-y 背景图片沿着 y 轴方向重复
    • no-repeat 背景图片不重复

设置背景范围

  • background-clip 设置背景的范围(同时控制背景颜色和背景图片的裁剪)
    • border-box 默认值,背景会出现在边框的下边
    • padding-box 背景不会出现在边框,只出现在内容区和内边距
    • content-box 背景只会出现在内容区

设置背景图片是否跟随元素移动

  • background-attachment 背景图片是否跟随元素移动
    • scroll 默认值,背景图片会跟随元素移动
    • fixed 背景会固定在页面中,不会随元素移动

测试背景图片

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="UTF-8"><title>设置背景图</title><style>/*去掉列表有序或者无序的徽记*/ul{list-style-type: none;}/*设置浮动,改变元素排列顺序*/li{/* 设置从左到右排列 */float: left;/* 每个列表向右偏移 */margin-right: 30px;/* 每个列表向下偏移 */margin-top:100px;}/*设置背景图*/body{background-image: url("./image/background.gif");/*设置背景图横向排列,不换行*/background-repeat: repeat-x;background-color:#cccc99;/*使用红绿蓝三种颜色可以测定颜色rgb(0~255,0~255,0~255)background-color: rgb(204,204,153);*/}label{display: block;margin-top: 100px;}input.myinput{border:solid 2px red;background-color: #ffd3d6;/* 设置波浪线背景图 */background-image: url("./image/check.gif");/* 只允许从左往右横向排列一次 */background-repeat: repeat-x;/* 设置背景图的位置 */background-position: bottom;}</style></head><body><ul><li><img src="image/1.jpg" alt="图片错误"></li><li><img src="image/2.jpg" alt="图片错误"></li><li><img src="image/3.jpg" alt="图片错误"></li><li><img src="image/4.jpg" alt="图片错误"></li></ul><label for="myinput">用户姓名: <input type="text" name="test" class="myinput"placeholder="请输入用户名" id="myinput"/></label></body>
</html>

效果

在这里插入图片描述

相关文章:

  • 【JavaEE】网络原理:网络中的一些基本概念
  • AI+量化02_金融市场的基础概念
  • 蓝桥oj3272小蓝的漆房
  • 【SpringCloud】微服务框架后端部署详细过程记录20240119
  • Unity - transform使用
  • C++核心编程
  • unity webgl 系列(2):从webgl内存中下载文件到本地硬盘
  • Baumer工业相机堡盟工业相机如何通过NEOAPI SDK使用短曝光功能(C#)
  • 有线桥接|Wifi隔了一堵墙就没信号?房间的网线口利用起来,让房间死角也有网!
  • JVM篇--垃圾回收高频面试题
  • 解决国内Linux服务器无法使用Github的方法
  • Java三大集合
  • 003-90-15【SparkSQLDFDS】慈航寺庙山脚下八卦田旁油菜花海深处人家王大爷家女儿用GPT学习DataSet的基本操作
  • 【通知】我的教学文章《Rust跟我学》已全部上线
  • 用el-image-viewer实现全局预览图片
  • 《深入 React 技术栈》
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 345-反转字符串中的元音字母
  • Facebook AccountKit 接入的坑点
  • HTTP 简介
  • iOS小技巧之UIImagePickerController实现头像选择
  • Java读取Properties文件的六种方法
  • laravel with 查询列表限制条数
  • Nacos系列:Nacos的Java SDK使用
  • niucms就是以城市为分割单位,在上面 小区/乡村/同城论坛+58+团购
  • PHP的Ev教程三(Periodic watcher)
  • 仿天猫超市收藏抛物线动画工具库
  • 关于字符编码你应该知道的事情
  • 力扣(LeetCode)21
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 怎么把视频里的音乐提取出来
  • 带你开发类似Pokemon Go的AR游戏
  • 昨天1024程序员节,我故意写了个死循环~
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • # 数据结构
  • #QT(一种朴素的计算器实现方法)
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (js)循环条件满足时终止循环
  • (Ruby)Ubuntu12.04安装Rails环境
  • (附源码)ssm码农论坛 毕业设计 231126
  • (论文阅读30/100)Convolutional Pose Machines
  • (译)计算距离、方位和更多经纬度之间的点
  • (转) Android中ViewStub组件使用
  • (转)c++ std::pair 与 std::make
  • (转)Linux整合apache和tomcat构建Web服务器
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .net CHARTING图表控件下载地址
  • .NET的微型Web框架 Nancy
  • ?
  • @Builder用法
  • @RequestMapping-占位符映射
  • @SpringBootApplication 包含的三个注解及其含义
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具