<!DOCTYPE html>
|
<html lang="en">
|
<head>
|
<meta charset="UTF-8">
|
<meta name="viewport" content="width=device-width">
|
<meta name="theme-color" content="#222"><meta name="generator" content="Hexo 6.3.0">
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/assets/ios-icon.png">
|
<link rel="icon" type="image/png" sizes="32x32" href="/assets/32.ico">
|
<link rel="icon" type="image/png" sizes="16x16" href="/assets/16.ico">
|
|
<link rel="stylesheet" href="/css/main.css">
|
|
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" integrity="sha256-HtsXJanqjKTc8vVQjO4YMhiqFoXkfBsjBWcX91T1jr8=" crossorigin="anonymous">
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.1.1/animate.min.css" integrity="sha256-PR7ttpcvz8qrF57fur/yAx1qXMFJeJFiA6pSzWi0OIE=" crossorigin="anonymous">
|
|
<script class="next-config" data-name="main" type="application/json">{"hostname":"zxq.im","root":"/","images":"/images","scheme":"Pisces","darkmode":false,"version":"8.18.1","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12},"copycode":{"enable":false,"style":null},"fold":{"enable":false,"height":500},"bookmark":{"enable":false,"color":"#222","save":"auto"},"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"stickytabs":false,"motion":{"enable":true,"async":false,"transition":{"menu_item":"fadeInDown","post_block":"fadeIn","post_header":"fadeInDown","post_body":"fadeInDown","coll_header":"fadeInLeft","sidebar":"fadeInUp"}},"prism":false,"i18n":{"placeholder":"Searching...","empty":"We didn't find any results for the search: ${query}","hits_time":"${hits} results found in ${time} ms","hits":"${hits} results found"},"path":"/search.xml","localsearch":{"enable":true,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false}}</script><script src="/js/config.js"></script>
|
|
<meta name="description" content="因为本人不爱用雪碧图,平时background-position用的并不多,一直以为百分比定位和像素定位是一样的逻辑原理,按容器像素换算百分比就可以了呀!呸,傻子!css的法则在脸上胡乱的拍,啪啪啪~!!痛过之后,有了以下理解: 像素与百分比换算对于background-position的百分比值,我们最容易理解的是以下的情况:这种情况乍一看,好像又简单又合情合理,但是,我们思考一下,(0%,0%">
|
<meta property="og:type" content="article">
|
<meta property="og:title" content="理解background-position百分比定位">
|
<meta property="og:url" content="http://zxq.im/12288.html">
|
<meta property="og:site_name" content="ZXQ">
|
<meta property="og:description" content="因为本人不爱用雪碧图,平时background-position用的并不多,一直以为百分比定位和像素定位是一样的逻辑原理,按容器像素换算百分比就可以了呀!呸,傻子!css的法则在脸上胡乱的拍,啪啪啪~!!痛过之后,有了以下理解: 像素与百分比换算对于background-position的百分比值,我们最容易理解的是以下的情况:这种情况乍一看,好像又简单又合情合理,但是,我们思考一下,(0%,0%">
|
<meta property="og:locale" content="en_US">
|
<meta property="og:image" content="http://zxq.im/assets/img/00001.jpg">
|
<meta property="og:image" content="http://zxq.im/assets/img/00002.jpg">
|
<meta property="og:image" content="http://zxq.im/assets/img/00003.jpg">
|
<meta property="og:image" content="http://zxq.im/assets/img/00004.jpg">
|
<meta property="article:published_time" content="2018-10-11T16:00:00.000Z">
|
<meta property="article:modified_time" content="2021-04-23T01:25:16.310Z">
|
<meta property="article:author" content="ZXQ">
|
<meta property="article:tag" content="CSS">
|
<meta name="twitter:card" content="summary">
|
<meta name="twitter:image" content="http://zxq.im/assets/img/00001.jpg">
|
|
|
<link rel="canonical" href="http://zxq.im/12288.html">
|
|
|
|
<script class="next-config" data-name="page" type="application/json">{"sidebar":"","isHome":false,"isPost":true,"lang":"en","comments":true,"permalink":"http://zxq.im/12288.html","path":"12288.html","title":"理解background-position百分比定位"}</script>
|
|
<script class="next-config" data-name="calendar" type="application/json">""</script>
|
<title>理解background-position百分比定位 | ZXQ</title>
|
|
|
|
|
|
|
|
|
|
<noscript>
|
<link rel="stylesheet" href="/css/noscript.css">
|
</noscript>
|
</head>
|
|
<body itemscope itemtype="http://schema.org/WebPage" class="use-motion">
|
<div class="headband"></div>
|
|
<main class="main">
|
<div class="column">
|
<header class="header" itemscope itemtype="http://schema.org/WPHeader"><div class="site-brand-container">
|
<div class="site-nav-toggle">
|
<div class="toggle" aria-label="Toggle navigation bar" role="button">
|
<span class="toggle-line"></span>
|
<span class="toggle-line"></span>
|
<span class="toggle-line"></span>
|
</div>
|
</div>
|
|
<div class="site-meta">
|
|
<a href="/" class="brand" rel="start">
|
<i class="logo-line"></i>
|
<p class="site-title">ZXQ</p>
|
<i class="logo-line"></i>
|
</a>
|
<p class="site-subtitle" itemprop="description">just a typist</p>
|
</div>
|
|
<div class="site-nav-right">
|
<div class="toggle popup-trigger" aria-label="Search" role="button">
|
<i class="fa fa-search fa-fw fa-lg"></i>
|
</div>
|
</div>
|
</div>
|
|
|
|
<nav class="site-nav">
|
<ul class="main-menu menu"><li class="menu-item menu-item-home"><a href="/" rel="section"><i class="fa fa-heart fa-fw"></i>Home</a></li><li class="menu-item menu-item-archives"><a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>Archives</a></li>
|
<li class="menu-item menu-item-search">
|
<a role="button" class="popup-trigger"><i class="fa fa-search fa-fw"></i>Search
|
</a>
|
</li>
|
</ul>
|
</nav>
|
|
|
|
<div class="search-pop-overlay">
|
<div class="popup search-popup"><div class="search-header">
|
<span class="search-icon">
|
<i class="fa fa-search"></i>
|
</span>
|
<div class="search-input-container">
|
<input autocomplete="off" autocapitalize="off" maxlength="80"
|
placeholder="Searching..." spellcheck="false"
|
type="search" class="search-input">
|
</div>
|
<span class="popup-btn-close" role="button">
|
<i class="fa fa-times-circle"></i>
|
</span>
|
</div>
|
<div class="search-result-container no-result">
|
<div class="search-result-icon">
|
<i class="fa fa-spinner fa-pulse fa-5x"></i>
|
</div>
|
</div>
|
|
</div>
|
</div>
|
|
</header>
|
|
|
<aside class="sidebar">
|
|
<div class="sidebar-inner sidebar-nav-active sidebar-toc-active">
|
<ul class="sidebar-nav">
|
<li class="sidebar-nav-toc">
|
Table of Contents
|
</li>
|
<li class="sidebar-nav-overview">
|
Overview
|
</li>
|
</ul>
|
|
<div class="sidebar-panel-container">
|
<!--noindex-->
|
<div class="post-toc-wrap sidebar-panel">
|
<div class="post-toc animated"><ol class="nav"><li class="nav-item nav-level-3"><a class="nav-link" href="#%E5%83%8F%E7%B4%A0%E4%B8%8E%E7%99%BE%E5%88%86%E6%AF%94%E6%8D%A2%E7%AE%97"><span class="nav-number">1.</span> <span class="nav-text">像素与百分比换算</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E8%83%8C%E6%99%AF%E5%9B%BE%E5%B0%8F%E4%BA%8E%E5%AE%B9%E5%99%A8%E7%9A%84%E6%83%85%E5%86%B5"><span class="nav-number">2.</span> <span class="nav-text">背景图小于容器的情况</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E8%83%8C%E6%99%AF%E5%9B%BE%E5%A4%A7%E4%BA%8E%E5%AE%B9%E5%99%A8%E7%9A%84%E6%83%85%E5%86%B5"><span class="nav-number">3.</span> <span class="nav-text">背景图大于容器的情况</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#%E7%AE%80%E5%8D%95%E7%B2%97%E6%9A%B4%E7%9A%84%E5%BA%94%E7%94%A8"><span class="nav-number">4.</span> <span class="nav-text">简单粗暴的应用</span></a></li></ol></div>
|
</div>
|
<!--/noindex-->
|
|
<div class="site-overview-wrap sidebar-panel">
|
<div class="site-author animated" itemprop="author" itemscope itemtype="http://schema.org/Person">
|
<img class="site-author-image" itemprop="image" alt="ZXQ"
|
src="/assets%07vatar.png">
|
<p class="site-author-name" itemprop="name">ZXQ</p>
|
<div class="site-description" itemprop="description"></div>
|
</div>
|
<div class="site-state-wrap animated">
|
<nav class="site-state">
|
<div class="site-state-item site-state-posts">
|
<a href="/archives/">
|
<span class="site-state-item-count">69</span>
|
<span class="site-state-item-name">posts</span>
|
</a>
|
</div>
|
<div class="site-state-item site-state-categories">
|
<a href="/categories/">
|
<span class="site-state-item-count">3</span>
|
<span class="site-state-item-name">categories</span></a>
|
</div>
|
<div class="site-state-item site-state-tags">
|
<a href="/tags/">
|
<span class="site-state-item-count">14</span>
|
<span class="site-state-item-name">tags</span></a>
|
</div>
|
</nav>
|
</div>
|
|
</div>
|
</div>
|
</div>
|
|
|
</aside>
|
|
|
</div>
|
|
<div class="main-inner post posts-expand">
|
|
|
|
|
|
<div class="post-block">
|
|
|
|
<article itemscope itemtype="http://schema.org/Article" class="post-content" lang="en">
|
<link itemprop="mainEntityOfPage" href="http://zxq.im/12288.html">
|
|
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
|
<meta itemprop="image" content="/assets%07vatar.png">
|
<meta itemprop="name" content="ZXQ">
|
</span>
|
|
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
|
<meta itemprop="name" content="ZXQ">
|
<meta itemprop="description" content="">
|
</span>
|
|
<span hidden itemprop="post" itemscope itemtype="http://schema.org/CreativeWork">
|
<meta itemprop="name" content="理解background-position百分比定位 | ZXQ">
|
<meta itemprop="description" content="">
|
</span>
|
<header class="post-header">
|
<h1 class="post-title" itemprop="name headline">
|
理解background-position百分比定位
|
</h1>
|
|
<div class="post-meta-container">
|
|
|
<div class="post-meta">
|
<span class="post-meta-item">
|
<span class="post-meta-item-icon">
|
<i class="far fa-calendar"></i>
|
</span>
|
<span class="post-meta-item-text">Posted on</span>
|
|
<time title="Created: 2018-10-12 00:00:00" itemprop="dateCreated datePublished" datetime="2018-10-12T00:00:00+08:00">2018-10-12</time>
|
</span>
|
<span class="post-meta-item">
|
<span class="post-meta-item-icon">
|
<i class="far fa-folder"></i>
|
</span>
|
<span class="post-meta-item-text">In</span>
|
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
|
<a href="/categories/%E5%89%8D%E7%AB%AF%E6%8A%80%E6%9C%AF/" itemprop="url" rel="index"><span itemprop="name">前端技术</span></a>
|
</span>
|
</span>
|
|
|
</div>
|
|
|
</div>
|
</header>
|
|
|
|
|
|
|
<div class="post-body" itemprop="articleBody"><p>因为本人不爱用雪碧图,平时background-position用的并不多,一直以为百分比定位和像素定位是一样的逻辑原理,按容器像素换算百分比就可以了呀!呸,傻子!css的法则在脸上胡乱的拍,啪啪啪~!!<br>痛过之后,有了以下理解:</p>
|
<h3 id="像素与百分比换算"><a href="#像素与百分比换算" class="headerlink" title="像素与百分比换算"></a>像素与百分比换算</h3><p>对于background-position的百分比值,我们最容易理解的是以下的情况:<br><img src="/assets/img/00001.jpg"><br>这种情况乍一看,好像又简单又合情合理,但是,我们思考一下,(0%,0%)位置的时候,背景图的定位点在哪?图片左上角!(100%,100%)位置的时候,背景图的定位点又在哪?图片右下角!<br>看出问题了吗,按像素定位的逻辑,背景图的定位点一直都在图片左上角,而百分比定位到底是怎么回事?(100%,100%)位置应该已经在容器外了,为什么还在容器里面?<br>“失去了参考点,我们很慌呀!”<br>来,别慌,我们用公式来解决:</p>
|
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">水平像素 = (容器宽度-背景图片宽度)*水平百分比</span><br><span class="line">垂直像素 = (容器高度-背景图片高度)*垂直百分比</span><br><span class="line"></span><br><span class="line">水平百分比 = 水平像素/(容器宽度-背景图片宽度)</span><br><span class="line">垂直百分比 = 水平像素/(容器高度-背景图片高度)</span><br></pre></td></tr></table></figure>
|
<h3 id="背景图小于容器的情况"><a href="#背景图小于容器的情况" class="headerlink" title="背景图小于容器的情况"></a>背景图小于容器的情况</h3><p>在我们确定像素值的情况下,我们用公式换算就OjbK了,但如果我们必须直接用百分比的时候该怎么估值?从平面图形上怎么理解百分比值呢?来,看下图:<br><img src="/assets/img/00002.jpg"><br>以背景图片左上角为定位点,按照(0%,0%)和(100%,100%)两个位置的背景图片的左上角进行连线,我们抽象出一个以百分比为值的平面直角坐标系,这个时候我们就很好理解大于100%和小于0%的位置在哪里了。</p>
|
<h3 id="背景图大于容器的情况"><a href="#背景图大于容器的情况" class="headerlink" title="背景图大于容器的情况"></a>背景图大于容器的情况</h3><p>还有一种使人懵逼的状态,就是当背景图片尺寸大于容器尺寸的时候。通常我们的定位值由左至右、由上至下递增,在背景图片小于容器的时候,按这个逻辑是没问题的。但是一旦背景图片大于容器,这一条就不成立了,原因在于坐标系的增值方向改变了,如下:<br><img src="/assets/img/00003.jpg"><br>“那个灰边小框框是容器,粉色大块块是背景图片,右下两个粉块块太大已超过画幅,咱们自行想象一下。”<br>上图中,负值越小越往右下方向移动,这和我们以往的思路是不一致的,这都是背景图片和容器大小关系决定的。</p>
|
<h3 id="简单粗暴的应用"><a href="#简单粗暴的应用" class="headerlink" title="简单粗暴的应用"></a>简单粗暴的应用</h3><p>好了,道理讲清楚了,具体应用我们可以遵循一条简单的思路:以(0%,0%)位置背景图左上角为起点(同时也是容器的左上角),以(100%,100%)位置背景图左上角为终点,画一条直线,数值根据线条的方向递增,自己想要什么样的位置就可以大概估摸出来了。<br><img src="/assets/img/00004.jpg"><br>以上分别是图片的宽高分别大于小于容器宽高的四种情况,延长线自行想象,坐标系意念铺开,增幅自行估摸,你会找到你要的点。</p>
|
<p>以上~</p>
|
|
</div>
|
|
|
|
|
|
|
|
<footer class="post-footer">
|
<div class="post-tags">
|
<a href="/tags/CSS/" rel="tag"># CSS</a>
|
</div>
|
|
|
|
<div class="post-nav">
|
<div class="post-nav-item">
|
<a href="/58913.html" rel="prev" title="hexo常用命令">
|
<i class="fa fa-angle-left"></i> hexo常用命令
|
</a>
|
</div>
|
<div class="post-nav-item">
|
<a href="/49928.html" rel="next" title="各种语言运行环境的安装">
|
各种语言运行环境的安装 <i class="fa fa-angle-right"></i>
|
</a>
|
</div>
|
</div>
|
</footer>
|
|
|
</article>
|
</div>
|
|
|
|
|
|
|
</div>
|
</main>
|
|
<footer class="footer">
|
<div class="footer-inner">
|
|
<div class="copyright">
|
©
|
<span itemprop="copyrightYear">2024</span>
|
<span class="with-love">
|
<i class="fa fa-heart"></i>
|
</span>
|
<span class="author" itemprop="copyrightHolder">ZXQ</span>
|
</div>
|
<div class="powered-by">Powered by <a href="https://hexo.io/" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.js.org/pisces/" rel="noopener" target="_blank">NexT.Pisces</a>
|
</div>
|
|
</div>
|
</footer>
|
|
|
<div class="back-to-top" role="button" aria-label="Back to top">
|
<i class="fa fa-arrow-up fa-lg"></i>
|
<span>0%</span>
|
</div>
|
|
<noscript>
|
<div class="noscript-warning">Theme NexT works best with JavaScript enabled</div>
|
</noscript>
|
|
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/animejs/3.2.1/anime.min.js" integrity="sha256-XL2inqUJaslATFnHdJOi9GfQ60on8Wx1C2H8DYiN1xY=" crossorigin="anonymous"></script>
|
<script src="/js/comments.js"></script><script src="/js/utils.js"></script><script src="/js/motion.js"></script><script src="/js/next-boot.js"></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/hexo-generator-searchdb/1.4.1/search.js" integrity="sha256-1kfA5uHPf65M5cphT2dvymhkuyHPQp5A53EGZOnOLmc=" crossorigin="anonymous"></script>
|
<script src="/js/third-party/search/local-search.js"></script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</body>
|
</html>
|