JO
2024-06-28 359cb1603348374b9ef46b72ece66bcdca6cd0e0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
<!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/Q/ios-icon.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/assets/Q/32.ico">
  <link rel="icon" type="image/png" sizes="16x16" href="/assets/Q/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%5CQ%5Cavatar.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%5CQ%5Cavatar.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">
    &copy; 
    <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>