整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

为什么图片一定要设置width和height?一定要了解的!

果页面有使用img标签,那么img很建议设置width和height。目的是为了在网速差或者其它原因加载不出图片的时候,保证布局不会乱。如下栗子,一个很普通的布局。

但是万一出现什么情况,图片加载不出来的话,建议的处理方式是第一种,显示一张默认图片,即使不显示默认图片,也让图片有一个占位的作用,保证布局不会乱!

如果图片加载不出,img又没有设置width和height的话,就会像下面这样,布局乱了!

注意:

  • PC站,建议在img标签的属性设置width和height。这样避免加载不出css而错位 。

  • 手机站,建议用css设置img的width和height,因为手机站要做适配,在属性设置width和height不灵活,比如使用rem布局,在属性那里设置不了width和height。

  • 如果图片不固定,但是有一个max-width和max-height,那么建议在img的父元素设置width和height。img根据父元素的width和height设置max-width和max-height。

业在网站建设时,很多同时也做了手机端的网站,为了丰富网站的版面和内容,给网站添加了大量的图片做美化。

网站的图片是一个网站能给用户最直观的信息表现,而对于搜索引擎而言,蜘蛛在随机抓取网站图片时候的识别能力还没有那么强。

如果文字很少,图片很多也会给手机端网站SEO优化带来一定的困难。

西安完美信息

不过,随着搜索引擎算法的不断成熟,现在百度也能抓取网站的图片,

例如:网站的LOGO、以及和文章主题相关的图片等等。

西安完美信息总结出了以下六种方法,协助我们优化网站和手机端的图片,以达到优化友好,迅速被录入的作用。

一、不要盗用图片尽量原创

尽量自己做图片,有很多免费的图片素材,我们可以通过拼接,做出我们需要的图片。

在平时工作的时候,发现和自己网站相关的图片可以先保存下来,在本地做出分类和标记。

网站需要图片的时候,看看相关的图片,自己着手做一个图片。这是一个长期积累的过程,随之时间的增加,自己的素材量也会越来越大。熟练了再做图片就得心应手了。

再这里特别要注意,现在很多图片是有版权的,一点不要去使用那些有版权的图片,不然不光会侵权,还会让搜索引擎降低对你网站的信任值。

二、网站图片保存路径

这个问题很多站长都没有注意,图片在传到到网站的时候,尽量把图片保存在一个目录下面,

或者根据网站栏目做好相应的图片目录,上传的时候路径要相对固定,方便蜘蛛抓取,蜘蛛在访问到这个目录的时候就会“知道”这个目录里面保存的是图片;

图片文件命名最好使用一些有规律的或者意义的方法,可以使用时间、栏目名称或者网站名称来命名。

例如:SEO优化下面的图片可以使用“SEOYH2018-12-26-36”这种命名,前面“SEOYH”是SEO优化的简拼,中间是时间,最后是图片的ID。

为什么要这么做呢?

其实这样是培养搜索引擎蜘蛛抓取习惯,方便将来更快的识别网站图片内容。让蜘蛛抓的顺心了,网站被收录的几率就增加了,何乐而不为呢!

三、图片周围要有相关文字

文章的开头就说了,网站图片是能把信息直接呈现给用户一个方法,搜索引擎在抓取网站内容的时候,也会检测这篇文章是否有配图、视频或者表格等等,

这些都是可以增加文章分数值的元素,其他的几个形式暂时不表,这里我们只说说关于图片周围相关文字的介绍。

西安完美信息

首先图片周边文字要与图片本身内容相符,例如你的文章说的是做网站优化,里面配图是一道菜谱的图片,这不是挂羊头卖狗肉么?

用户的访问感会极差,搜索引擎通过相关算法识别这张图片以后,也会觉得图文不符,给你差评哦。

所以,每篇文章最少要配一张相应的图片,而且在图片的周围要出现和你网站标题相关的内容。不但能帮助搜索引擎理解图片,还可以增加文章的可读性、用户体验友好度以及相关性。

四、图片添加alt、title标签

许多站长在添加网站图片时可能没有留意这些细节,有的可能觉得麻烦,希望大家千万别有这种想法,这是大错特错的。

搜索引擎抓取网站图片的时候,atl标签是它首先抓取的,也是识别图片内容最重要的核心因素之一,图片的alt属性是直接告诉搜索引擎这是啥网站图片,以及这张要表达什么意思;

title标签是用户指向这张图片的时候,会显示的提示内容,这是增加用户体验度和增加网站关键词的一个小技巧。

西安完美信息

还有就是这两个属性,会给有阅读障碍的访问者提供访问的便利,例如:有盲人在访问你网站的时候,他看不到屏幕上的内容,可能是通过读屏软件来阅读的,如果有alt属性,软件会直接读出alt属性里的文字,给他们的访问提供方便。

五、图片的大小和分辨率

尽管两者看起来有些相同,但还是有很大的差别,相同大小的图片,分辨率更高的话,网站最终体积也会越大。这一点大家要搞清楚。

网站的上的图片,一直以来都提倡用尽量小的图片,去最大化呈现内容。为什么要这样呢?

因为小尺寸的图片会加载的更快,不会让访问者等待太久,特别是手机访问的时候,由于手机上网速度和流量的限制,用户更愿意访问能立即打开的页面,小尺寸图片就更有优势了。

在这里我们尽量做好平衡,在图片不失真的情况下,尺寸最好尽量的小。

现在有很多在线给图片瘦身的工具,各位站长可以去尝试一下,把网站的图片适当的压缩一下,一方面可以减少你服务器带宽的压力,另外还能给用户有流畅的体验。

六、手机端自动适应

很多站长都遇到过网站在电脑访问图片显示很正常,可是从手机端就会出现错位等等情况,这就是大尺寸的图片给不同尺寸的终端造成错位和显示不全的情况。

西安完美信息

其实这个问题很好解决,在添加图片的时候宽高最好不要使用绝对大小,使用百分比就解决了。

具体说,CSS代码不能指定像素宽度:width:xxxpx;只能指定百分比宽度:width:xx%;或者width:auto就可以了。

这样做的目的也是为了让百度的移动蜘蛛抓取的时候有个良好的体验,这也是为了更符合百度移动落地页体验。

以上介绍了在网站SEO优化如何抓取手机网站图片的一些技巧,其实本质就是为了给用户更好的访问体验。

你做网站的时候本着这个目的,相信搜索引擎一定会青睐你的网站。

者:Isabella

博客:https://www.jianshu.com/u/e8ffabd1fca9

先看我

移动端(Android/iOS)开发的小伙伴,是不是觉得不需要学习web开发了?不能因为是web相关内容的而望而旋走是不是?毕竟大家都是大前端的,互相了解才能师夷长技以制夷对不对?(雾)

移动开发不等于只有app开发,所有的技术浪潮都可以融入到移动开发体系中。作为前端工程师,无论是对页面的实现方式要求高大上,表现形式的完美,还是性能的极致,都是我们不断追求的目标。

由于前端技术栈的不断更新,效率提高,同样的前端人数,能完成比以前更多的职责范围。在不少企业,1个优秀的前端工程师就能搞定Web和移动端的开发,甚至负责一部分后端。移动端的同学还不赶紧上web的车?

css和html的关系?

既然总是先看脸,那就开始CSS的表演吧~

在Android开发中,都在xml里写app的布局,那web中的html和css,到底是什么关系呢?

看图比较直观:

1

2

在web中,HTML是骨架,CSS是皮肤,JavaScript是肌肉。

而如果用一扇门比喻三者之间的关系:HTML是门的门板,CSS是门上的油漆或者花纹,JavaScript则是门的开关。

现在认真认识下CSS~

了解CSS

CSS的官方名字叫做层叠样式表,他的出现是为了解决内容和表现分离的问题,一般存放在 .css 文件里。

CSS的出现,拯救了混乱的HTML,让网页的形式更加丰富多彩。

它最大贡献就是: 让HTML从样式中解脱苦海, 实现了HTML专注去做结构呈现。 而样式交给CSS后,你完全可以放心地早点洗洗睡了!

如果JavaScript是网页的魔法师,那么CSS就是网页的美容师。

论美容师的重要

理论上讲它可以规定网页的一切表现,位置、颜色、大小、距离…设计稿上的所有效果都可以借助它一一呈现,但是在实际应用中配合功能和性能以及各方面的要求,导致设计师的构想并不一定能够完整表达。

各类布局,都是为了美观,而布局之美,根本是要理解透盒子模型,熟悉各种布局。

没有一种东西是绝对好的,只有不断地进步。

Remember that.

CSS组成与规则

组成:

两个主要部分:选择器,一条或者多条声明。

样式规则:

使用HTML时,需要遵从一定的规范。CSS亦如此,要想熟练地使用CSS对网页进行修饰,首先需要了解CSS样式规则,具体格式如下:

理论比较枯燥,看实际来感受下css的魅力吧!

怎样用css实现下面布局效果呢?

九宫格图

从上图我们可以分析出如下需求:

  • 图片大小自适应;

  • 图片个数不同时,图片按照指定方式排列;

  • 图片相邻处有1px空白间隙。

以图6为例,

来看如何用css一步一步实现效果。

float!

最容易想到的,也是最简单的方案,就是 float 布局:

  • 图片大小自适应:宽度百分比,高度使用 padding-top 百分比

  • 图片个数不同时,图片按照指定方式排列:使用 nth-child 伪类指定不同情况下的元素大小

  • 图片相邻处有1px空白间隙:使用 border-box + border模拟边框

<div class="float">
<div class="item">1</div>
...
<div class="item">6</div>
</div>
.float {
overflow: hidden;
}
.item {
float: left;
padding-top: 33.3%;
width: 33.3%;
border-right: 1px solid #fff;
border-top: 1px solid #fff;
}
.item:nth-child(1) {
padding-top: 66.6%;
width: 66.6%;
}
.item:nth-child(2), .item:nth-child(3), .item:nth-child(6) {
border-right: 0 none;
}
.item:nth-child(1), .item:nth-child(2) {
border-top: 0 none;
}

但实际效果并不理想,如下图:

float布局效果

可以看到 float 布局不能做到真正的流体布局。至少width要自己去算百分比。它的优点是DOM结构十分简单,缺点是容易出现空白间隙错位,优缺点都十分明显,它更适用于js计算的版本。

还有谁?flex!

flex,即伸缩布局盒模型(Flexible Box)

  • 可以将 flex 布局下的元素展示在同一水平、垂直方向上;

  • 可以支持自动换行、换列;

  • 可以指定 flex 布局下的元素如何分配空间,可以让元素自动占满父元素剩余空间;

  • 可以指定 flex 布局下的元素的展示方向,排列方式

使用 flex 布局与 float 布局不同的地方在于,移动端目前主要还是-webkit-box,因此图片个数不同时,我们需要使用不同的html,组合出不同的块。

flex布局上下划分

使用传统css文档流自上而下的方式来划分,称为上下划分,如下图:

上面一块包含左侧1个2/3的大块,右侧2个1/3的小块,下面一块则是3个1/3的小块。

我们指定2/3的大块宽度是66.6%,1/3的小块宽度是33.3%(实际可以使用-webkit-box-flex来分配,这里为了下面的计算方便)。

主要实现

<div class="wrap-box wrap-6">
<div class="flex-inner">
<div class="flex-box1 flex-item"></div>
<div class="flex-box2">
<div class="flex-item"></div>
<div class="flex-item"></div>
</div>
</div>
<div class="flex-inner">
<div class="flex-item"></div>
<div class="flex-item"></div>
<div class="flex-item"></div>
</div>
</div>
.wrap-box {
display: -webkit-box;
}

.flex-inner {
-webkit-box-flex: 1;
display: -webkit-box;
}

.flex-item {
-webkit-box-flex: 1;
position: relative;
}
.wrap-6 {
-webkit-box-orient: horizontal;
}
.wrap-6 .flex-inner {
-webkit-box-flex: 0;
-webkit-box-orient: vertical;
}
.wrap-6 .flex-inner:first-child {
width: 66.6%;
}
.wrap-6 .flex-inner:last-child {
width: 33.3%;
}
.wrap-6 .flex-item {
padding-top: 100%;
}
.wrap-6 .flex-box2 .flex-item {
padding-top: 50%;
}
.wrap-6 .flex-box2 {
display: -webkit-box;
-webkit-box-orient: horizontal;
}
.wrap-6 .flex-inner:first-child,
.wrap-6 .flex-box2 .flex-item:first-child {
margin-right: 1px;
}
.wrap-6 .flex-box1,
.wrap-6 .flex-inner:last-child .flex-item:first-child,
.wrap-6 .flex-inner:last-child .flex-item:nth-child(2) {
margin-bottom: 1px;
}

实现效果

中间那条竖空白间隙错位了,为什么?按照预期我们上面块左侧宽度66.6%,下面块左侧宽度33.3% + 33.3%,两个宽度应该相等才对。

然而我们忽略了flex一个重要特性,子元素会自动占满父元素剩余空间,这时子元素宽度计算受flex控制,下面块的3个子元素宽度计算并非一定是相等的,会有些许差异,此时66.6% != 33.3% + 33.3%。

怎么破!别急,冷静下来重新思考如何划分。

flex左右划分

问题在于竖间隙涉及到的左右侧宽度计算不稳定,既然如此,我们可以考虑依据竖间隙左右划分,排除不稳定因素,如下图:

这样就解决了竖间隙错位问题,但我们依然有所担心,中间的横间隙会错位吗?我们来算一下。

整体父元素宽度确定,为W;整体父元素高度由子元素撑开,不确定;

左侧大块高度:左侧flex父元素宽度(W * 66.6%) * 100% = W * 66.6%;

左侧小块高度:左侧flex父元素宽度( W * 66.6%) * 50% = W * 33.3%;

右侧小块高度:右侧flex父元素宽度( W * 33.3%) * 100% = W * 33.3%。

依然是66.6%与33.3% + 33.3%的等式,但这次高度计算会受 flex 影响吗?

不会,因为此时整体父元素的高度是不确定的,是由子元素内容撑开的,flex的高度也是由子元素来撑开的。

最终 66.6% === 33.3% + 33.3%。

实际效果

Perfect~

css是不是很好用?

这篇的概念先介绍这么多了,后续再做深入学习~

参考文档:

  • Flex布局的基本概念https://juejin.im/post/5c0731e951882516da0e373d

  • 我就是要用CSS实现http://www.alloyteam.com/2016/01/let-see-css-world

与内容相关联文章:

  • 苹果手机不能在中国销售了!那iOS开发岂不是。。。

  • 你真的认识View吗?

  • 分页加载哪家强?Paging 来帮忙!

等等,先别走!「码个蛋」又有活动了!参与活动不但可以培养自己的好习惯,还能拿到「码个蛋」IP系列专属奖品,速度要快...

今日问题:

移动端的小伙伴上web的车了吗?

留言格式:

打卡x 天,答:xxx

告诉你一个小技巧:

只需3步,你将不会错过任何一篇文章!