自适应css布局——流动布局新时代[译](4)
作者:dishuipiaoxiang 来源:蓝色理想 发布时间:2009-08-13 12:28:00
三、 流动布局中的图像
在流动布局中开发者最关心的是处理图像和内容,它们需要一定的宽度。大多数情况下,我们希望我们的图像尽可能的大,至少在太小时应防止任何令人尴尬的空白,在固定宽度的布局中,可手动调整,客服这些问题很容易。但是,在流动布局中,图像区域的宽度是不断变化的,这些问题就在此出现了。
自动杂志版面设计
这个解决方案需要一些聪明的数学知识和PHP,在Harvey Kane 的 Automatic Magazine Layout 文章中有全面的解释(包括数学)和可下载的源代码。标题由图像在杂志中如何呈现来决定:有条理且总是完美对齐。当然,一本杂志版面的设计师都必须经过一定的过程来实现这种效果,包括调整和手动放置。
对我们来说,这一技巧可以实现我们的效果,下面是脚本实现这一效果的第一个例子。
正如你所看到的那样,非常漂亮。但是,如何使用流动布局使其更具可用性?Harvey Kane 给了我们必须使用的脚本。
# include the class file
require_once('magazinelayout.class.php');
# Define the width for the output area (pixels)
$width = 600;
# Define padding around each image; this *must* be included
#in your style sheet (pixels)
$padding = 3;
# Define your template for outputting images
# (Don't forget to escape the &)
$template = '<img src="image.php?size=[size]&file=[image]" alt="" />';
# create a new instance of the class
$mag = new magazinelayout($width,$padding,$template);
# Add the images in any order
$mag->addImage( 'landscape1.jpg' );
$mag->addImage( 'portrait1.jpg' );
$mag->addImage( 'landscape2.jpg' );
# display the output
echo $mag->getHtml();
我们可以事先定义我们所希望的图像杂志的宽度。因此,如果我们找到浏览器的宽度,我们就可以决定我们布局图像的宽度,这很容易。因为我们已经学会了第二种技巧:自适应内容的流动布局。在他的脚本中,Kevin Hale使用了一个称之为getBrowserWidth() 的方法,你可以在他的文章中更深入的了解该方法的代码。
如果我们用这种方法取代浏览器的宽度值,然后用这个值去寻找我们内容区域的像素宽度(不论图像放在那个区域)。比方说,我们希望将图像放到70%的内容区域中,利用简单的数学知识,我们只需要找到浏览器宽度值的70%就行。
Pixel width = 内容区域百分比 x 浏览器宽度
$width = 0.70 x getBrowserWidth();
这是很基本的数学知识,是流动布局中处理图像最基本的方法,调整PHP脚本自动寻找图像的像素值。这样,在一个流动布局中,你就能很好的处理图像或其余已经设置宽度的内容。


猜你喜欢
- 在创建SQL Server 2000 故障转移群集之前,必须配置 Microsoft 群集服务 (MSCS) 并使用 Microsoft W
- 实现简单的多线程下载,需要关注如下几点:1.文件的大小:可以从reponse header中提取,如“Content-Length:911”
- 代码编辑环境Win10+(Pycharmm or Vscode)+PyQt 5.14.2功能实现静态作图:数据作图,取决于作图函数,可自行修
- 成功解决NLTK包的安装错误创建环境NLP_Pre_trainl环境conda create -n NLP_Pre_train python
- 无法覆盖vant的UI组件的样式有时候UI组件提供的默认的样式不能满足项目的需要,就需要我们对它的样式进行修改,但是发现加了scoped后修
- 前言大家都知道golang的defer关键字,它可以在函数返回前执行一些操作,最常用的就是打开一个资源(例如一个文件、数据库连接等)时就用d
- 生命游戏的算法就不多解释了,百度一下介绍随处可见。因为网上大多数版本都是基于pygame,matlab等外部库实现的,二维数组大多是用num
- 为什么PHP7的性能可以提高这么多?1. JIT 2. Zval的改变 3. 内部类型zend_string 4. PHP数组的变化(Has
- 一、邮件发送示例邮件发送示例flask_email及smtplib原生邮件发送示例,适用于基于Flask框架开发,但是内部设置的定时任务发送
- 此程序为先调用opencv自带的人脸检测模型,检测到人脸后,再调用我自己训练好的模型去识别人脸,使用时更改模型地址即可#!usr/bin/e
- 之前跟一些小伙伴有个讨论:大概就是很多跟数据打交道的朋友都面对过很复杂的excel公式,有时嵌套层数特别多,肉眼观看很容易蒙圈。有了这样的需
- TensorFlow从txt文件中读取数据的方法很多有种,我比较常用的是下面两种:【1】np.loadtxtimport numpy as
- 本文实例讲述了Python3实现的字典、列表和json对象互转功能。分享给大家供大家参考,具体如下:python3可以使用json模块操作j
- 前言最近经常用到一个.py程序,但是每次在不同电脑上用,希望能把Python脚本发布为脱离Python平台运行的可执行程序,比如单个exe。
- 下面从以下四种方案分析各自的优缺点。方案一:SELECT * FROM `table` ORDER BY RAND() LIMIT 0,1;
- 我使用“ Web 2.0设计”来形容目前占主导优势的网页设计风格, 很多人用这个词来形容:网络经济的复苏网站和用户之间更高水平的交互或一种社
- 1、bootstrapBootstrap 是Twitter推出的一个用于前端开发的,一个用于 HTML、CSS 和 JS 开发的开源工具包,
- python中有指定的代码进行输入操作,所以今天就由小编来为大家介绍python怎么实现键盘输入。第一首先打开电脑的python编辑工具。再
- 一、说明 numpy.ufunc是什么函数?答
- 共享状态是比较容易理解和使用的,但是可能产生隐晦以至于很难追踪的 bugs。尤其是在我们的数据结构只有部分是通过引用传递的。切片就是这么一个