整合营销服务商

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

免费咨询热线:

还在用 JS 写页面?教你只用纯 HTML 做出几个实用网页效果

我们以往看到的页面效果中,很多效果是需要JS搭配使用的,而今天在本文中,我将介绍如何使用纯HTML打造属于自己的实用效果。

1. 折叠手风琴

使用Details和Summary标签可以创建没有JavaScript代码的可折叠手风琴。

效果:

HTML

<details>
<summary>Languages Used</summary>
<p>This page was written in HTML and CSS. The CSS was compiled from SASS. Regardless, this could all be done in plain HTML and CSS</p>
</details>

<details>
<summary>How it Works</summary>
<p>Using the sibling and checked selectors, we can determine the styling of sibling elements based on the checked state of the checkbox input element. </p>
</details>

CSS

* {
 font-size: 1rem;
 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
details {
 border: 1px solid #aaa;
 border-radius: 4px;
 padding: .5em .5em 0;
}
summary {
 font-weight: bold;
 margin: -.5em -.5em 0;
 padding: .5em;
}
details[open] {
 padding: .5em;
}
details[open] summary {
 border-bottom: 1px solid #aaa;
 margin-bottom: .5em;
}

浏览器支持:

2. 进度条

该Meter和Progress 的元素标签的基础上,你可以调整属性呈现在屏幕上的进度条。进步有两个属性:max和value校准进度条,而Meter标签提供了更多的定制属性。

效果:

HTML:

<label for="upload">Upload progress:</label>
<meter id="upload" name="upload"
 min="0" max="100"
 low="33" high="66" optimum="80"
 value="50">
 at 50/100
</meter>
<hr/>
<label for="file">File progress:</label>
<progress id="file" max="100" value="70"> 70% </progress>

CSS:

body {
 margin: 50px;
}
label {
 padding-right: 10px;
 font-size: 1rem;
 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

浏览器支持:

3. 更多输入类型

在定义输入元素时,您要知道现代浏览器已经允许您指定足够多的输入类型了。除了你应该已经知道text,email,password,number这些类型外,还有下面的这些。

  • date 将显示本机日期选择器
  • datetime-local 更丰富的日期和时间选择器
  • month 友好的月份选择器
  • tel会让你输入一个电话号码。在移动浏览器上打开它,弹出的键盘将发生变化,同样的email也是如此。
  • search 将输入文本框设置为友好的搜索样式。

效果:

HTML:

<label for="date">Enter date:</label>
<input type="date" id="date"/>
<label for="datetime">Enter date & time:</label>
<input type="datetime-local" id="datetime"/>
<label for="month">Enter month:</label>
<input type="month" id="month"/>
<label for="search">Search for:</label>
<input type="search" id="search"/>
<label for="tel">Enter Phone:</label>
<input type="tel" id="tel">

CSS:

input, label {display:block; margin: 5px;}
input {margin-bottom:18px;}

各种新输入类型的MDN文档非常广泛且信息量很大。此外,检查移动输入类型以了解用户在移动浏览器上时这些输入元素的键盘行为。

4. 视频和音频

video和audio元素虽然现在已经成为HTML规范的一部分,但是你一样会惊讶于你可以使用video标签在屏幕上渲染出一个体面的视频播放器。

<video controls>
 <source src="https://addpipe.com/sample_vid/short.mp4" 
 poster="https://addpipe.com/sample_vid/poster.png">
 Sorry, your browser doesn't support embedded videos.
</video

视频标记中值得注意的一些属性包括:

  • poster 下载视频时要显示封面的URL
  • preload 是否在页面加载时预加载整个视频
  • autoplay 视频是否应该在页面加载后自动播放

浏览器支持:

5. 校对文本

当你想显示历史编辑及校对的情况时,blockquote,del和ins元素标签可以派上用场了。

示例:

HTML:

<blockquote>
 There is <del>nothing</del> <ins>no code</ins> either good or bad, but <del>thinking</del> <ins>running it</ins> makes it so.
</blockquote>

CSS:

del {
 text-decoration: line-through;
 background-color: #fbb;
 color: #555;
}
ins {
 text-decoration: none;
 background-color: #d4fcbc;
}
blockquote {
 padding-left: 15px;
 line-height: 30px;
 border-left: 3px solid #d7d7db;
 font-size: 1rem;
 background: #eee;
 width: 200px;
}

6.更统一的引号

由于中英文引号的不同,使用<q>标记可以让您很好的解决这个问题,它可使你的内容在大多数浏览器上更一致地呈现引号。

HTML:

Don Corleone said <q cite="https://www.imdb.com/title/tt0068646/quotes/qt0361877">I'm gonna make him an offer he can't refuse. Okay? I want you to leave it all to me. Go on, go back to the party.</q></p>
<hr/>
Don Corleone said <i>"I'm gonna make him an offer he can't refuse. Okay? I want you to leave it all to me. Go on, go back to the party."</i>

CSS:

body {
 margin: 50px;
}
q {
 font-style: italic;
 color: #000000bf;
}

7. 键盘标签

<kbd>标签应该是一个少为人知的冷门标签,但这个能使用更好的方式来说明组合键的样式。

HTML:

<p>I know that <kbd>CTRL</kbd>+<kbd>C</kbd> and <kbd>CTRL</kbd>+<kbd>V</kbd> a are like the most used key combinations</p>

CSS:

body {
 margin: 50px;
}
kbd {
 display: inline-block;
 margin: 0 .1em;
 padding: .1em .6em;
 font-size: 11px;
 line-height: 1.4;
 color: #242729;
 text-shadow: 0 1px 0 #FFF;
 background-color: #e1e3e5;
 border: 1px solid #adb3b9;
 border-radius: 3px;
 box-shadow: 0 1px 0 rgba(12,13,14,0.2), 0 0 0 2px #FFF inset;
 white-space: nowrap;
}

8.使用HTML共享代码

使用figcaption pre code标签,您可以使用纯HTML和CSS呈现出不错的代码片段。

HTML:

<figure>
 <figcaption>
 Defining a css <code>color</code> property for a class called 'golden'
 </figcaption>
 
 <pre>
 <code>
 .golden {
 color: golden;
 }
 </code>
 </pre>
</figure>

CSS:

pre {
 background-color: #ffbdbd;
}

这篇文章也只是抛砖引玉,也许您也有更多私藏的使用技巧,不妨也贴出来分享给大家。

另外,如果您不仅仅限于以上的效率,希望有更完整的动态功能。

例如:您希望在您的页面中加入Excel功能,可以尝试葡萄城的 纯前端表格控件SpreadJS,再或者您希望为用户提供更完备、更高效的前端UI控件,您也不妨可以试试 WijmoJS,相信它们都能为您的应用增色不少。

关于葡萄城

赋能开发者!葡萄城公司成立于 1980 年,是全球领先的集开发工具、商业智能解决方案、管理系统设计工具于一身的软件和服务提供商。西安葡萄城是其在中国的分支机构,面向全球市场提供软件研发服务,并为中国企业的信息化提供国际先进的开发工具、软件和研发咨询服务。葡萄城的控件和软件产品在国内外屡获殊荣,在全球被数十万家企业、学校和政府机构广泛应用。

见浏览器兼容性问题与解决方案?

参考答案

(1)浏览器兼容问题一:不同浏览器的标签默认的外补丁和内补丁不同

问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。

碰到频率:100%

解决方案:CSS里 {margin:0;padding:0;}

备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符来设置各个标签的内外补丁是0。

(2)浏览器兼容问题二:块属性标签float后,又有横行的margin情况下,在IE6显示margin比设置的大

问题症状:常见症状是IE6中后面的一块被顶到下一行

碰到频率:90%(稍微复杂点的页面都会碰到,float布局最常见的浏览器兼容问题)

解决方案:在float的标签样式控制中加入 display:inline;将其转化为行内属性

备注:我们最常用的就是div+CSS布局了,而div就是一个典型的块属性标签,横向布局的时候我们通常都是用div float实现的,横向的间距设置如果用margin实现,这就是一个必然会碰到的兼容性问题。

(3)浏览器兼容问题三:设置较小高度标签(一般小于10px),在IE6,IE7,遨游中高度超出自己设置高度

问题症状:IE6、7和遨游里这个标签的高度不受控制,超出自己设置的高度

碰到频率:60%

解决方案:给超出高度的标签设置overflow:hidden;或者设置行高line-height 小于你设置的高度。

备注:这种情况一般出现在我们设置小圆角背景的标签里。出现这个问题的原因是IE8之前的浏览器都会给标签一个最小默认的行高的高度。即使你的标签是空的,这个标签的高度还是会达到默认的行高。

(4)浏览器兼容问题四:行内属性标签,设置display:block后采用float布局,又有横行的margin的情况,IE6间距bug

问题症状:IE6里的间距比超过设置的间距

碰到几率:20%

解决方案 : 在display:block;后面加入display:inline;display:table;

备注:行内属性标签,为了设置宽高,我们需要设置display:block;(除了input标签比较特殊)。在用float布局并有横向的margin后,在IE6下,他就具有了块属性float后的横向margin的bug。不过因为它本身就是行内属性标签,所以我们再加上display:inline的话,它的高宽就不可设了。这时候我们还需要在display:inline后面加入display:talbe。

(5) 浏览器兼容问题五:图片默认有间距

问题症状:几个img标签放在一起的时候,有些浏览器会有默认的间距,加了问题一中提到的通配符也不起作用。

碰到几率:20%

解决方案:使用float属性为img布局

备注 : 因为img标签是行内属性标签,所以只要不超出容器宽度,img标签都会排在一行里,但是部分浏览器的img标签之间会有个间距。去掉这个间距使用float是正道。(我的一个学生使用负margin,虽然能解决,但负margin本身就是容易引起浏览器兼容问题的用法,所以我禁止他们使用)

(6) 浏览器兼容问题六:标签最低高度设置min-height不兼容

问题症状:因为min-height本身就是一个不兼容的CSS属性,所以设置min-height时不能很好的被各个浏览器兼容

碰到几率:5%

解决方案:如果我们要设置一个标签的最小高度200px,需要进行的设置为:{min-height:200px; height:auto !important;

height:200px; overflow:visible;}

备注:在B/S系统前端开时,有很多情况下我们又这种需求。当内容小于一个值(如300px)时。容器的高度为300px;当内容高度大于这个值时,容器高度被撑高,而不是出现滚动条。这时候我们就会面临这个兼容性问题。

(7)浏览器兼容问题七:透明度的兼容CSS设置

一般在ie中用的是filter:alpha(opacity=0);这个属性来设置div或者是块级元素的透明度,而在firefox中,一般就是直接使用opacity:0,对于兼容的,一般的做法就是在书写css样式的将2个都写上就行,就能实现兼容

列出display的值并说明他们的作用?

参考答案

display: none | inline | block |

list-item | inline-block | table | inline-table |

table-caption | table-cell | table-row | table-row-group | table-column |

table-column-group | table-footer-group | table-header-group | run-in | box |

inline-box | flexbox | inline-flexbox | flex | inline-flex

默认值:inline

none: 隐藏对象。与visibility属性的hidden值不同,其不为被隐藏的对象保留其物理空间

inline: 指定对象为内联元素。

block: 指定对象为块元素。

list-item:指定对象为列表项目。

inline-block: 指定对象为内联块元素。(CSS2)

table: 指定对象作为块元素级的表格。类同于html标签<table>(CSS2)

inline-table:指定对象作为内联元素级的表格。类同于html标签<table>(CSS2)

table-caption:指定对象作为表格标题。类同于html标签<caption>(CSS2)

table-cell:指定对象作为表格单元格。类同于html标签<td>(CSS2)

table-row:指定对象作为表格行。类同于html标签<tr>(CSS2)

table-row-group:指定对象作为表格行组。类同于html标签<tbody>(CSS2)

table-column:指定对象作为表格列。类同于html标签<col>(CSS2)

table-column-group: 指定对象作为表格列组显示。类同于html标签<colgroup>(CSS2)

table-header-group: 指定对象作为表格标题组。类同于html标签<thead>(CSS2)

table-footer-group: 指定对象作为表格脚注组。类同于html标签<tfoot>(CSS2)

run-in:根据上下文决定对象是内联对象还是块级对象。(CSS3)

box:将对象作为弹性伸缩盒显示。(伸缩盒最老版本)(CSS3)

inline-box:将对象作为内联块级弹性伸缩盒显示。(伸缩盒最老版本)(CSS3)

flexbox:将对象作为弹性伸缩盒显示。(伸缩盒过渡版本)(CSS3)

inline-flexbox:将对象作为内联块级弹性伸缩盒显示。(伸缩盒过渡版本)(CSS3)

flex:将对象作为弹性伸缩盒显示。(伸缩盒最新版本)(CSS3)

inline-flex:将对象作为内联块级弹性伸缩盒显示。(伸缩盒最新版本)(CSS3)

如何居中div, 如何居中一个浮动元素?

参考答案

(1)、非浮动元素居中:可以设置margin:0 auto 令其居中, 定位 ,父级元素text-algin:center等等

(2)、浮动元素居中:

方法一:设置当前div的宽度,然后设置margin-left:50%; position:relative; left:-250px;其中的left是宽度的一半。

方法二:父元素和子元素同时左浮动,然后父元素相对左移动50%,再然后子元素相对左移动-50%。

方法三:position定位等等。

CSS中link 和@import 的区别是?

参考答案

(1)、link属于HTML标签,而@import是CSS提供的;

(2)、页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;

(3)、import只在IE5以上才能识别,而link是HTML标签,无兼容问题;

(4)、link方式的样式的权重高于@import的权重.

请列举几种清除浮动的方法(至少两种)?

参考答案

(1)、父级div定义 height

原理:父级div手动定义height,就解决了父级div无法自动获取到高度的问题。

优点:简单、代码少、容易掌握

缺点:只适合高度固定的布局,要给出精确的高度,如果高度和父级div不一样时,会产生问题

建议:不推荐使用,只建议高度固定的布局时使用

(2)、结尾处加空div标签 clear:both

原理:添加一个空div,利用css提高的clear:both清除浮动,让父级div能自动获取到高度

优点:简单、代码少、浏览器支持好、不容易出现怪问题

缺点:不少初学者不理解原理;如果页面浮动布局多,就要增加很多空div,让人感觉很不好

建议:不推荐使用,但此方法是以前主要使用的一种清除浮动方法

(3)、父级div定义

伪类:after 和 zoom

原理:IE8以上和非IE浏览器才支持:after,原理和方法2有点类似,zoom(IE转有属性)可解决ie6,ie7浮动问题

优点:浏览器支持好、不容易出现怪问题(目前:大型网站都有使用,如:腾迅,网易,新浪等等)

缺点:代码多、不少初学者不理解原理,要两句代码结合使用才能让主流浏览器都支持。

建议:推荐使用,建议定义公共类,以减少CSS代码。

(4)、父级div定义 overflow:hidden

原理:必须定义width或zoom:1,同时不能定义height,使用overflow:hidden时,浏览器会自动检查浮动区域的高度

优点:简单、代码少、浏览器支持好

缺点:不能和position配合使用,因为超出的尺寸的会被隐藏。

建议:只推荐没有使用position或对overflow:hidden理解比较深的朋友使用。

(5)、父级div定义 overflow:auto

原理:必须定义width或zoom:1,同时不能定义height,使用overflow:auto时,浏览器会自动检查浮动区域的高度

优点:简单、代码少、浏览器支持好

缺点:内部宽高超过父级div时,会出现滚动条。

建议:不推荐使用,如果你需要出现滚动条或者确保你的代码不会出现滚动条就使用吧。

block,inline和inlinke-block细节对比?

参考答案

display:block

a、block元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父元素宽度。

b、block元素可以设置width,height属性。块级元素即使设置了宽度,仍然是独占一行。

c、block元素可以设置margin和padding属性。

• display:inline

a、inline元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。

b、inline元素设置width,height属性无效。

c、inline元素的margin和padding属性,水平方向的padding-left, padding-right, margin-left,

margin-right都产生边距效果;但竖直方向的padding-top, padding-bottom, margin-top,

margin-bottom不会产生边距效果。

• display:inline-block

a、简单来说就是将对象呈现为inline对象,但是对象的内容作为block对象呈现。之后的内联对象会被排列在同一行内。比如我们可以给一个link(a元素)inline-block属性值,使其既具有block的宽度高度特性又具有inline的同行特性。

补充说明

a、一般我们会用display:block,display:inline或者display:inline-block来调整元素的布局级别,其实display的参数远远不止这三种,仅仅是比较常用而已。

b、IE(低版本IE)本来是不支持inline-block的,所以在IE中对内联元素使用display:inline-block,理论上IE是不识别的,但使用display:inline-block在IE下会触发layout,从而使内联元素拥有了display:inline-block属性的表象。

什么叫优雅降级和渐进增强?

参考答案

优雅降级: Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作。由于IE独特的盒模型布局问题,针对不同版本的IE的hack实践过优雅降级了,为那些无法支持功能的浏览器增加候选方案,使之在旧式浏览器上以某种形式降级体验却不至于完全失效.

渐进增强: 从被所有浏览器支持的基本功能开始,逐步地添加那些只有新式浏览器才支持的功能,向页面增加无害于基础浏览器的额外样式和功能的。当浏览器支持时,它们会自动地呈现出来并发挥作用。

说说浮动元素会引起的问题和你的解决办法

参考答案

问题:

(1)父元素的高度无法被撑开,影响与父元素同级的元素

(2)与浮动元素同级的非浮动元素会跟随其后

(3)若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面显示的结构

解决方法:

使用CSS中的clear:both;属性来清除元素的浮动可解决问题(2)、(3),对于问题(1),添加如下样式,给父元素添加clearfix样式:

.clearfix:after{content: ".";display: block;height: 0;clear:

both;visibility: hidden;}

.clearfix{display: inline-block;} /* for IE/Mac */

清除浮动的几种方法:

(1)、额外标签法,<div

style="clear:both;"></div>(缺点:不过这个办法会增加额外的标签使HTML结构看起来不够简洁。)

(2)、使用after伪类

parent:after{

content:" ";

height:0;

visibility:hidden;

display:block;

clear:both;

}

(3)、浮动外部元素

(4)、设置overflow为hidden或者auto

你有哪些性能优化的方法?

参考答案

回答一:

(1)、减少http请求次数:CSS Sprites, JS、CSS源码压缩、图片大小控制合适;网页Gzip,CDN托管,data缓存

,图片服务器。

(2)、前端模板 JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJAX请求结果,每次操作本地变量,不用请求,减少请求次数

(3)、用innerHTML代替DOM操作,减少DOM操作次数,优化javascript性能。

(4)、当需要设置的样式很多时设置className而不是直接操作style。

(5)、少用全局变量、缓存DOM节点查找的结果。减少IO读取操作。

(6)、避免使用CSS Expression(css表达式)又称Dynamic properties(动态属性)。

(7)、图片预加载,将样式表放在顶部,将脚本放在底部加上时间戳。

回答二:

(1)、减少HTTP请求次数

(2)、使用CDN

(3)、避免空的src和href

(4)、为文件头指定Expires

(5)、使用gzip压缩内容

(6)、把CSS放到顶部

(7)、把JS放到底部

(8)、避免使用CSS表达式

(9)、将CSS和JS放到外部文件中

(10)、避免跳转

(11)、可缓存的AJAX

(12)、使用GET来完成AJAX请求

为什么要初始化CSS样式?

参考答案

因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差异。

当然,初始化样式会对SEO有一定的影响,但鱼和熊掌不可兼得,但力求影响最小的情况下初始化。

最简单的初始化方法就是: {padding: 0; margin: 0;} (不建议)

解释下浮动和它的工作原理?清除浮动的技巧?

参考答案

浮动元素脱离文档流,不占据空间。浮动元素碰到包含它的边框或者浮动元素的边框停留。

(1)、使用空标签清除浮动。

这种方法是在所有浮动标签后面添加一个空标签 定义css clear:both. 弊端就是增加了无意义标签。

(2)、使用overflow。

给包含浮动元素的父标签添加css属性 overflow:auto; zoom:1; zoom:1用于兼容IE6。

(3)、使用after伪对象清除浮动。

该方法只适用于非IE浏览器。具体写法可参照以下示例。使用中需注意以下几点。一、该方法中必须为需要清除浮动元素的伪对象中设置height:0,否则该元素会比实际高出若干像素;

CSS样式表根据所在网页的位置,可分为哪几种样式表?

参考答案

行内样式表,内嵌样式表,外部样式表

谈谈你对CSS中刻度的认识?

参考答案

在CSS中刻度是用于设置元素尺寸的单位。

a、特殊值0可以省略单位。例如:margin:0px可以写成margin:0

b、一些属性可能允许有负长度值,或者有一定的范围限制。如果不支持负长度值,那应该变换到能够被支持的最近的一个长度值。

c、长度单位包括:相对单位和绝对单位。

相对长度单位有: em, ex, ch, rem, vw, vh, vmax,

vmin

绝对长度单位有: cm, mm, q, in, pt, pc, px

绝对长度单位:1in = 2.54cm = 25.4 mm = 72pt = 6pc = 96px

文本相对长度单位:em

相对长度单位是相对于当前对象内文本的字体尺寸,如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。(相对父元素的字体大小倍数)

body { font-size: 14px; }

h1 { font-size: 16px; }

.size1 p { font-size: 1em; }

.size2 p { font-size: 2em; }

.size3 p { font-size: 3em; }

文本相对长度单位:rem

rem是CSS3新增的一个相对单位(root em,根em),相对于根元素(即html元素)font-size计算值的倍数

只相对于根元素的大小

浏览器的默认字体大小为16像素,浏览器默认样式也称为user agent stylesheet,就是所有浏览器内置的默认样式,多数是可以被修改的,但chrome不能直接修改,可以被用户样式覆盖。

请你说说em与rem的区别?

参考答案

rem

rem是CSS3新增的一个相对单位(root em,根em),相对于根元素(即html元素)font-size计算值的倍数

只相对于根元素的大小

rem(font size of the root element)是指相对于根元素的字体大小的单位。简单的说它就是一个相对单位。

作用:利用rem可以实现简单的响应式布局,可以利用html元素中字体的大小与屏幕间的比值设置font-size的值实现当屏幕分辨率变化时让元素也变化,以前的天猫tmall就使用这种办法

em

文本相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸(默认16px)。(相对父元素的字体大小倍数)

em(font size of the element)是指相对于父元素的字体大小的单位。它与rem之间其实很相似,区别在。(相对是的HTML元素的字体大,默认16px)

em与rem的重要区别: 它们计算的规则一个是依赖父元素另一个是依赖根元素计算

请你说说box-sizing属性的的用法?

参考答案

设置或检索对象的盒模型组成模式

a、box-sizing:content-box: padding和border不被包含在定义的width和height之内。对象的实际宽度等于设置的width值和border、padding之和,即( Element width = width + border + padding,但占有页面位置还要加上margin ) 此属性表现为标准模式下的盒模型。

b、box-sizing:border-box: padding和border被包含在定义的width和height之内。对象的实际宽度就等于设置的width值,即使定义有border和padding也不会改变对象的实际宽度,即( Element width = width ) 此属性表现为怪异模式下的盒模型。

浏览器标准模式和怪异模式之间的区别是什么?

参考答案

在“标准模式”(Standards Mode) 页面按照 HTML 与 CSS 的定义渲染,而在“怪异模式”(Quirks Mode)就是浏览器为了兼容很早之前针对旧版本浏览器设计、并未严格遵循W3C 标准的网页而产生的一种页面渲染模式。浏览器基于页面中文件类型描述的存在以决定采用哪种渲染模式;如果存在一个完整的DOCTYPE则浏览器将会采用标准模式,而如果它缺失则浏览器将会采用怪异模式。

强烈建议阅读加深理解:怪异模式(Quirks Mode)对 HTML 页面的影响,这里列下浏览器标准模式和怪异模式的区别:

(1)盒模型:

在怪异模式下,盒模型为IE盒模型而非标准模式下的W3C 盒模型:在 IE 盒模型中,

box width = content width + padding left + padding right + border left + border

right,

box height = content height + padding top + padding bottom + border top +

border bottom。

而在 W3C 标准的盒模型中,box 的大小就是 content 的大小。

(2)图片元素的垂直对齐方式:

对于inline元素和table-cell元素,在 IE Standards Mode 下 vertical-align 属性默认取值为baseline。而当inline元素的内容只有图片时,如table的单元格table-cell。在 IE Quirks Mode 下,table单元格中的图片的 vertical-align 属性默认为bottom,因此,在图片底部会有几像素的空间。

(3)<table>元素中的字体:

CSS 中,描述font的属性有font-family,font-size,font-style,font-weigh,上述属性都是可以继承的。而在IE Quirks Mode 下,对于table 元素,字体的某些属性将不会从body或其他封闭元素继承到table中,特别是 font-size属性。

(4)

内联元素的尺寸:

在 IE Standards Mode 下,non-replaced inline 元素无法自定义大小,而在IE Quirks Mode 下,定义这些元素的width和height 属性,能够影响该元素显示的大小尺寸。

(5)

元素的百分比高度:

a、CSS 中对于元素的百分比高度规定如下,百分比为元素包含块的高度,不可为负值。如果包含块的高度没有显式给出,该值等同于“auto”(即取决于内容的高度)。所以百分比的高度必须在父元素有声明高度时使用。

b、当一个元素使用百分比高度时,在IE Standards Mode 下,高度取决于内容的变化,而在Quirks Mode 下,百分比高度则被正确应用。

(6)

元素溢出的处理:

在 IE Standard Mode 下,overflow取默认值 visible,即溢出可见,这种情况下,溢出内容不会被裁剪,呈现在元素框外。而在Quirks Mode 下,该溢出被当做扩展box来对待,即元素的大小由其内容决定,溢出不会被裁剪,元素框自动调整,包含溢出内容。

怪异Quirks模式是什么,它和标准Standards模式有什么区别?

参考答案

从IE6开始,引入了Standards模式,标准模式中,浏览器尝试给符合标准的文档在规范上的正确处理达到在指定浏览器中的程度。

在IE6之前CSS还不够成熟,所以IE5等之前的浏览器对CSS的支持很差, IE6将对CSS提供更好的支持,然而这时的问题就来了,因为有很多页面是基于旧的布局方式写的,而如果IE6 支持CSS则将令这些页面显示不正常,如何在即保证不破坏现有页面,又提供新的渲染机制呢?

在写程序时我们也会经常遇到这样的问题,如何保证原来的接口不变,又提供更强大的功能,尤其是新功能不兼容旧功能时。遇到这种问题时的一个常见做法是增加参数和分支,即当某个参数为真时,我们就使用新功能,而如果这个参数 不为真时,就使用旧功能,这样就能不破坏原有的程序,又提供新功能。IE6也是类似这样做的,它将DTD当成了这个“参数”,因为以前的页面大家都不会去写DTD,所以IE6就假定 如果写了DTD,就意味着这个页面将采用对CSS支持更好的布局,而如果没有,则采用兼容之前的布局方式。这就是Quirks模式(怪癖模式,诡异模式,怪异模式)。

区别:总体会有布局、样式解析和脚本执行三个方面的区别。

盒模型: 在W3C标准中,如果设置一个元素的宽度和高度,指的是元素内容的宽度和高度,而在Quirks 模式下,IE的宽度和高度还包含了padding和border。

设置行内元素的高宽: 在Standards模式下,给<span>等行内元素设置wdith和height都不会生效,而在quirks模式下,则会生效。

设置百分比的高度: 在standards模式下,一个元素的高度是由其包含的内容来决定的,如果父元素没有设置百分比的高度,子元素设置一个百分比的高度是无效的用margin:0 auto设置水平居中:使用margin:0 auto在standards模式下可以使元素水平居中,但在quirks模式下却会失效。

(还有很多,答出什么不重要,关键是看他答出的这些是不是自己经验遇到的,还是说都是看文章看的,甚至完全不知道。)

说说你对边距折叠的理解?

参考答案

外边距折叠: 相邻的两个或多个外边距 (margin) 在垂直方向会合并成一个外边距(margin)

相邻: 没有被非空内容、padding、border 或 clear 分隔开的margin特性. 非空内容就是说这元素之间要么是兄弟关系或者父子关系

垂直方向外边距合并计算:

a、参加折叠的margin都是正值:取其中 margin 较大的值为最终 margin 值。

b、参与折叠的margin 都是负值:取的是其中绝对值较大的,然后,从0 位置,负向位移。

c、参与折叠的margin 中有正值,有负值:先取出负 margin 中绝对值中最大的,然后,和正margin 值中最大的 margin 相加。

内联与块级标签有何区别?

参考答案

Html中的标签默认主要分为两大类型,一类为块级元素,另一类是行内元素,许多人也把行内称为内联,所以叫内联元素,其实就是一个意思。为了很好的布局,必须理解它们间的区别。

说说隐藏元素的方式有哪些?

参考答案

a、使用CSS的display:none,不会占有原来的位置

b、使用CSS的visibility:hidden,会占有原来的位置

c、使用HTML5中的新增属性hidden="hidden",不会占有原来的位置

为什么重置浏览器默认样式,如何重置默浏览器认样式?

参考答案

每种浏览器都有一套默认的样式表,即user agent stylesheet,网页在没有指定的样式时,按浏览器内置的样式表来渲染。这是合理的,像word中也有一些预留样式,可以让我们的排版更美观整齐。不同浏览器甚至同一浏览器不同版本的默认样式是不同的。但这样会有很多兼容问题。

a、最简单的办法:(不推荐使用)*{margin: 0;padding: 0;}。

b、使用CSSReset可以将所有浏览器默认样式设置成一样。

c、normalize:也许有些cssreset过于简单粗暴,有点伤及无辜,normalize是另一个选择。bootstrap已经引用该css来重置浏览器默认样式,比普通的cssreset要精细一些,保留浏览器有用的默认样式,支持包括手机浏览器在内的超多浏览器,同时对HTML5元素、排版、列表、嵌入的内容、表单和表格都进行了一般化。

天猫 使用的css reset重置浏览器默认样式:

@charset

"gb2312";body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd,

ul, ol, li, pre, form, fieldset, legend, button, input, textarea, th, td

{margin: 0;padding: 0}body, button, input, select, textarea

{font: 12px "microsoft yahei";line-height: 1.5;-ms-overflow-style: scrollbar}h1,

h2, h3, h4, h5, h6 {font-size: 100%}ul, ol {list-style: none}a

{text-decoration: none;cursor:pointer}a:hover

{text-decoration: underline}img {border: 0}button, input, select,

textarea {font-size: 100%}table {border-collapse: collapse;border-spacing: 0}.clear

{clear:both}.fr {float:right}.fl {float:left}.block

{display:block;text-indent:-999em}

谈谈你对BFC与IFC的理解?(是什么,如何产生,作用)

参考答案

(1)、什么是BFC与IFC

a、BFC(Block Formatting Context)即“块级格式化上下文”, IFC(Inline Formatting Context)即行内格式化上下文。常规流(也称标准流、普通流)是一个文档在被显示时最常见的布局形态。一个框在常规流中必须属于一个格式化上下文,你可以把BFC想象成一个大箱子,箱子外边的元素将不与箱子内的元素产生作用。

b、BFC是W3C CSS 2.1 规范中的一个概念,它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用。当涉及到可视化布局的时候,Block Formatting Context提供了一个环境,HTML元素在这个环境中按照一定规则进行布局。一个环境中的元素不会影响到其它环境中的布局。比如浮动元素会形成BFC,浮动元素内部子元素的主要受该浮动元素影响,两个浮动元素之间是互不影响的。也可以说BFC就是一个作用范围。

c、在普通流中的Box(框) 属于一种 formatting context(格式化上下文) ,类型可以是 block ,或者是 inline ,但不能同时属于这两者。并且,Block boxes(块框) 在 block formatting context(块格式化上下文) 里格式化, Inline boxes(块内框) 则在 Inline Formatting Context(行内格式化上下文) 里格式化。

(2)、如何产生BFC

当一个HTML元素满足下面条件的任何一点,都可以产生Block Formatting Context:

a、float的值不为none

b、overflow的值不为visible

c、display的值为table-cell, table-caption, inline-block中的任何一个

d、position的值不为relative和static

CSS3触发BFC方式则可以简单描述为:在元素定位非static,relative的情况下触发,float也是一种定位方式。

(3)、BFC的作用与特点

a、不和浮动元素重叠,清除外部浮动,阻止浮动元素覆盖

如果一个浮动元素后面跟着一个非浮动的元素,那么就会产生一个重叠的现象。常规流(也称标准流、普通流)是一个文档在被显示时最常见的布局形态,当float不为none时,position为absolute、fixed时元素将脱离标准流。

说说你对页面中使用定位(position)的理解?

参考答案

使用css布局position非常重要,语法如下:

position:static | relative | absolute | fixed |

center | page | sticky

默认值:static,center、page、sticky是CSS3中新增加的值。

(1)、static

可以认为静态的,默认元素都是静态的定位,对象遵循常规流。此时4个定位偏移属性不会被应用,也就是使用left,right,bottom,top将不会生效。

(2)、relative

相对定位,对象遵循常规流,并且参照自身在常规流中的位置通过top,right,bottom,left这4个定位偏移属性进行偏移时不会影响常规流中的任何元素。

(3)、absolute

a、绝对定位,对象脱离常规流,此时偏移属性参照的是离自身最近的定位祖先元素,如果没有定位的祖先元素,则一直回溯到body元素。盒子的偏移位置不影响常规流中的任何元素,其margin不与其他任何margin折叠。

b、元素定位参考的是离自身最近的定位祖先元素,要满足两个条件,第一个是自己的祖先元素,可以是父元素也可以是父元素的父元素,一直找,如果没有则选择body为对照对象。第二个条件是要求祖先元素必须定位,通俗说就是position的属性值为非static都行。

(4)、fixed

固定定位,与absolute一致,但偏移定位是以窗口为参考。当出现滚动条时,对象不会随着滚动。

(5)、center

与absolute一致,但偏移定位是以定位祖先元素的中心点为参考。盒子在其包含容器垂直水平居中。(CSS3)

(6)、page

与absolute一致。元素在分页媒体或者区域块内,元素的包含块始终是初始包含块,否则取决于每个absolute模式。(CSS3)

(7)、sticky

对象在常态时遵循常规流。它就像是relative和fixed的合体,当在屏幕中时按常规流排版,当卷动到屏幕外时则表现如fixed。该属性的表现是现实中你见到的吸附效果。(CSS3)

如何解决多个元素重叠问题?

参考答案

使用z-index属性可以设置元素的层叠顺序

z-index属性

语法:z-index: auto | <integer>

默认值:auto

适用于:定位元素。即定义了position为非static的元素

取值:

auto:元素在当前层叠上下文中的层叠级别是0。元素不会创建新的局部层叠上下文,除非它是根元素。

整数: 用整数值来定义堆叠级别。可以为负值。 说明:

检索或设置对象的层叠顺序。

z-index用于确定元素在当前层叠上下文中的层叠级别,并确定该元素是否创建新的局部层叠上下文。

当多个元素层叠在一起时,数字大者将显示在上面。

内容来源于@什么值得买APP,观点仅代表作者本人 |作者:铁匠铜鞋



第一次在大妈这里写文章,讲述下自己的用车经历,也简单表达下自己对用车需求的理解,没有对错,只讲个人经历。请各位看官若不喜请轻喷。2012年,据说世界末日要到,结果没啥异样,小两口当天就去买了一辆POLO,说既然末日不到,就开始新的生活吧。原本我是觉得花几万块买辆自动挡雨燕挺好,但老婆看不顺眼,觉得小车就POLO还行,并且坚持买车就要最高配,所以当时就花12万多(上路)买了一辆A0级小车,除了GTI外的最高配了。高配好在它有皮,有自动空调,有后视镜加热,有雷达……放在现在看都不稀奇,但是有些功能有跟没有,体验上还是有区别。现在想想低配的高尔夫也应该很香,但到了我手里估计折腾得就还要多了……这辆车陪伴着我们走过了新婚到孩子上幼儿园的年代,质保期均在4S保养,并在免费保养基础上加钱使用了全合成机油。出保后就自己换机油、换火花塞等,然后就是回4S换了一次变速箱油。期间自己改了RCD510播放器、黑底白字液晶仪表、定速巡航、多功能方向盘、ENKEI旋压轮毂(丰田标,因为收的86原装拆车件)……全程基本自己动手,过程也有颇多细节,想想也是融入了很多的感情和精力,都随着时间成为记忆。,因为收的86原装拆车件)……全程基本自己动手,过程也有颇多细节,想想也是融入了很多的感情和精力,都随着时间成为记忆。

改前改后对比

丰田轮毂大众……

期间朋友出国一段时间,把他的君威2.4给我用了半年。厚重又不失运动的一辆车,看着大,实际后排空间不大(好几位乘客上车第一反应如是说),整体居家适用,但是问题也不少。首先车机问题,熄火后重新上电,车机的时间就复位了;变速箱也出过问题,还有什么电磁阀,因为都是朋友处理的,我印象不深了。原车支持DTSBOSE音响还不错。我使用期间倒是没什么典型故障出现,只换过一次电瓶。也只留下了一张自己保养时候拍的照片。

自己换机油

再到2017年,孩子上学了,老婆也开始有自己固定的事情了,用车频繁,我就萌生了再买一辆代步车自己上下班用的想法,要求是:小巧、个性、便宜。选来选去,大龄二手mini吧,三个要求都满足。也没多想,就奔着便宜收了一辆07R56,第一次买二手车,毫无经验,只身前往,也不会检查,买回来问题不少,一顿整备。自己洗积碳、节气门,保养,换门铰链,修音响喇叭,甚至自己买工具换避震都干过了。期间跑过长途,也逛过山。总之,对开车的人来说,它确实还是很值的,异响、小毛病,都不是问题,因为便宜啊,开着灵活啊,贴地飞行的感觉啊,还带无框车门(执念),哈哈……

呆萌脸

2018年,无意间又看到了一辆R57,就在隔壁县,憋不住了,一波操作后R57到手。虽然玩过一辆二手车了,但是这次依旧没有太多经验,买回来用着发现一些问题,以及随着使用,又冒出来的问题(N14发动机太不省心,通病比较多,现在人尽皆知了)。高压油泵、避震、节温器、气门油封,还有其它漏油渗油的问题……mini虽可爱,但是宝马为了压榨性能给它赋予的高温工作特性,再配上紧凑的空间,散热不佳,可想而知。除了修车,还有各种常规保养,变速箱油、火花塞等。

渗油漏油厉害不……

拥有它的期间,的确也带着我和家人上过山下过海。敞开蓬,与大自然融为一体。

上山算不?

这是真的下海,象山某沙滩

精致

但终究它还是太小。适合一个人上下班开,卡丁车般操控绝对强悍,穿梭在大街小巷机动灵活;敞篷之后又是另一种趣味;但是舒适性差、空间小,后排座位为了敞篷机构,靠背直立,这些对乘坐的人来说,却都是痛苦,尤其后期经常坐这车的老婆对它抱怨比较大。

2019年,想着老婆的抱怨以及对MercedesV6、大排自吸、后驱、旅行车的敬仰,就换了一辆C300旅行。

路过忍不住回头看,就是指它吗?

单看外观,就绝对是一众旅行车中相对优雅的存在。估计只有自家CLS猎装能比过它了吧(小心R36、V90、A6 Allroad、Clubman等伙伴表示不服

……)。记得有一天下班路上,一堆车在等红绿灯时我从右拐车道拐弯了,立马接到同事的电话,问我是不是刚开过去,确定之后说她和副驾另一位女同事同时都看到一辆非常漂亮的车开过去,想起来好像是我的,确认下……我一直以为大多数人都不喜欢旅行车,看来也不见得。

这是我现在开着的车,也是连续淘车以来,自己用得最久、家人也最满意的一辆车,所以就重点讲讲它了。
C300旅行款相比同期C200 CGI旅行版指导价高出11.8万元,上到54.8万元。这辆自带AMG套件的版本价格应该还要高些,不过当年据说因为国人也不喜欢旅行车,购买是有一定优惠的。
这辆车的AMG套件,大概包括了:AMG运动包围及侧裙,前后配AMG轮毂,带自适应调节软硬、比普通版本降低15mm的运动避震,散热更好的打孔刹车盘,带拨片的三幅方向盘(不带套件是很丑的四幅),铝合金排挡头,以铝合金内饰替换普通版本的木纹内饰,铝合金运动踏板,包裹性更强的运动座椅。省去了外观党的改装费用,也让它无论是看起来还是驾驭起来都是更运动、更年轻。白外黑内也是我最喜欢的颜色,白外安全耐看,黑内不显旧。

中控整体

很多人都觉得这个方向盘碍眼,其实是可以换新款的,我个人不在意而已。内饰其它地方的质感真的看到就能感觉不一样。

每处按键的手感和精致度都很好

配有奔驰最经典的M272发动机,有着“奔驰最稳发动机”的称号,连S级部分车型也是连续多年搭载该款发动机。相比1.8T版本以及我之前那些N12N14mini爱出毛病的发动机们,它确实是越级的稳!账面数据:231马力,300牛米扭矩(2500-5000转),零百7.5秒。配上同样经典的7G-TRONIC变速箱,7前进挡+2倒挡。动力系统可以说非常完美。这个完美是我理解的完美,就日常使用来说,城市行走,拥堵时候走走停停,它有足够的动力来让你从容起步。加上平顺的变速箱搭配,之前mini或者开朋友高尔夫带给我的那种走走停停的不适感,几乎不存在。之前是好不容易速度上去了,立马得刹车,远没有这大排量自吸带来的从容感。其次,速度上到七、八十之后,踩油门还能源源不断提供动力的体验,让你穿行车流间依然游刃有余,这就足够了。毕竟一把年纪了,不需要一脚地板油就让路人捂上耳朵臭骂的声音,也不需要跟人PK冲刺的动力。以前我就想:小马拉大车真的合理吗,从能量的角度看,大马拉同样的车,轻松点,优雅有余,不是也更好?

不漏油

机舱就是清爽(主要是指不漏油渗油,灰尘脏污无视吧

一直想去洗洗,没抽出空……)

虽然是大马,油耗其实也没有过于夸张,十年前的技术,六缸,10-11左右的综合油耗,我觉得真的还好。买车后也看到了淘车计划的那篇比我写得好很多的文章,他说这是一辆优雅、从容又处处都带着传说中的“高级感”的车,深有共鸣。

附上淘车计划的文章,比我写的好多了,有兴趣的看官可点此处移步。
这个变速箱的两个倒挡也很有意思,据说一是考虑雪地脱困用得着,二是万一尊贵的车主你遇到了紧急情况,倒个车不够快怎么能行呢。反正我是在空旷地带稍微深踩过倒挡,是可以很快的。

旋钮手感也一级棒

这台发动机也有通病,比如进气歧管上可变气门那块塑料三角板。为啥我知道?因为我就遇到了。发动机突然出现提示,倒也没有什么明显的异常感觉(因为当时也没有深踩油门试过),但是凭之前对此发动机的了解,心里一想:该来的还是来了。甚至都没有去店里读取故障码,我就买来了改进版的铝三角板,正好过年在家躲疫情,修车店也没几个开的,狠下心自己就动手了。

因为没有专业的工具和场地,甚至包括一些辅助凳子之类的,弓着腰操作……反正过程的艰辛就不说了,总之功夫不负有心人,我终于还是完美的把它修复了,配件费花了不到一百块。

金属的,再也不会断了

因为有了前面几辆车的经历,加上这辆车本身到手时候也没有什么明显的问题,于是边开边了解,基本上充分了解情况后,对一些随时间老化,不够完美的地方进行了修复整备。有人说过,二手车一车一况,你开上一辆车的状态,不代表这个车就是这样。我同事买的新车,几万公里下来后,我开起来明显感觉底盘松散,但是他觉得和新车没啥区别。既然都选择了汽车发明者造的车,虽然是二手,但是质感不能输,否则买它就没有意义了。因此,为了追求接近新车的紧致质感(否则我买的真的算是假奔驰

),前后减震(原车是自适应阻尼减震,所以我也选择更换了匹配的倍适登自适应阻尼减震),前部底盘摆臂拉杆全部换新(这些摆臂拉杆其实是我有点吹毛求疵了,原车的实际状态还好)。实际证明,原车的避震在七万公里这个时候已经没有阻尼了,这一点在几辆车上我也有所发现,基本上了七、八万公里,五、六年之后,前部减震都要挂(后部虽然也换新了,但是旧的拆下来还是好的,通常前减震容易挂)。如果不够准确,那我限定在德系车吧,因为这些确实都是德系(对了,那辆美系君威,朋友也换过避震)。皮带和轮系也自己换新了,旧的虽然也能用,反正刚换上后开车,那稳稳的感觉明显比之前要好。发动机脚、变速箱机脚也都换新了。为尽量恢复新车动力,点火线圈、火花塞也全部换新,前轮毂有变形,甚至用了一段时间后轻微漏气,发现一只边缘有裂纹,果断都换新,后轮毂翻新(前后轮毂宽度不同,后轮毂没找到新的,原车的没变形,状态还行)。另外一个真实的故障就是档把后面的多媒体旋钮中轴断了,因为也是通病,改进版修复件也有了,又是几十块自己搞定,铝合金中轴再也不会断了。最近也把四个轮胎换成了美国改装界比较有名的日本品牌-耐特通INVO系列,前刹车盘、片也换新了。毕竟这些都是影响安全的东西,mini车友群里一位自己开店的车友说的:再好的刹车,都靠轮胎着地提供摩擦力,该花的钱不能省,关乎安全。这款轮胎据说湿地排水性能和抓地力都不错,身在雨水较多的南方城市,适合。之前的米其林PS4其它都好,不耐磨,后轮也容易打滑,连高架上那种衔接处的钢板表面,要是雨天经过时踩油门,都会滑……

吹毛求疵的换新

这个年代的奔驰,地毯材料问题,都有味道,好在4S召回全部换新了。还有一些零散的整备,比如氙气大灯担心老化,换了新灯泡;液压撑杆,换了新的;内部照明灯,替换为LED型;厂家召回气囊,4S换了方向盘和副驾前方的气囊,现在的方向盘中间那块带LGOGO的地方是全新的;全车油水也换一遍,包括变速箱油和差速器油等。常规保养自己动手,用力魔魔法基因,效果就是发动机声音轻、动力平顺,驾驶室内像开着日系车,常规跑起来基本上不太感觉到发动机声音(也可能前面的mini故意在驾驶室营造发动机声音太明显了)。

宽厚的多向电调记忆座椅

老婆对这辆车的满意点是:舒适性相比mini,自然是越级的存在;后排空间虽然不是特别大,但是相比mini R57的后排,也是越级存在了;后备箱还能拉大件,搬家都成;内饰虽然样子有点年代感,但是细节精致度,用料以及按键手感、人机工学,比理想这些现代车只会更好不会差。

细看配置:主动回收安全带,电动翻转屏,方向盘换挡拨片、随速转向,定速巡航,前排两个座椅电动且各带3组记忆,头枕高低都是电动的,带预防性安全系统PRE-SAFE,座椅带加热功能,内、外(外只有左边)后视镜自动防眩目,外后视镜带记忆和自动折叠,电动带记忆和舒适进出方向盘,双温区自动空调,后排遮阳帘,天窗电动遮阳帘,自动大灯,自动雨刷(这个自动雨刷也必须夸,真的非常准,想想那些该刷时不刷,不该刷时自己刷的自动雨刷,你会发现奔驰真的用心在做每个细节,如果你发现偶尔有场景真的不准,它还提供给你不同灵敏度选择),雨量传感器还能在你离开车辆后检测到下雨时自动关闭未关闭的车窗,支持DTS的音响效果也不差……可以说配置非常丰富实用,尽管现在的新车配置多联彩屏看起来更炫酷,但是讲实用、用料和成本,还是原来的这些车实在。

好多小细节,新款都省了

就如这块行李箱遮物帘,质感、半自动轨道,在现在的EQC等新车上都简配了。

这辆车虽然个性小众(到目前两年多时间,路上没有碰见过一辆同款),但是最特别的地方是它的维保方法、配件都是遍地存在。有什么通病,如何解决,以及需要的配件,基本都能轻松搞到。因为它和遍地的W204多数配件都是通用的。好处不言而喻,除了它本身就可靠以外,你也不必过于担心它的后续维保,说直白点,开个几十万公里即使发动机不行了,花不了太大代价换台新的也能轻松搞定(几十万公里不夸张,我朋友买了一辆325,开了四十多万公里了,修修补补,保养好了,依然健步如飞

)。
期间,我们长途旅游开过,上山露营也开过,行李不愁放不下,车里还可以直接睡。车顶行李架也可以架上车顶帐篷。搬家也确实搬过,平时遇到大件要拉它基本都能应付。
确实,从家用的角度,它的确各方面都很好。可靠性好,行驶质感好,操控也不差,维保费用可控,空间不大不小还能搬家,配置相对足够。后排倒下后非常平坦,有时我会倒下座椅在公司午休时睡个觉,
1.8米以下都可以随便躺直。这些优点,加上奔驰的底蕴,我曾好几次问过自己:一辆这车、一辆新的高配朗逸(甚至中低配帕萨特),价格接近,怎么选?对于我来说,应该还是前者。因为,大家看得出来,我是个爱折腾的人,甚至享受把不完美变成完美的过程。过程中也能学习到厂家在做产品时的一些心思,以及产品可靠性相关经验(职业病)。硬要谈品牌,我认为不是因为品牌本身带来的虚荣感,而是品牌让我能感受到它有追求地去打造一辆车,并不是一味迎合商业机会制造出来的产品。在竞争激烈的今天,这样一份追求更加难能可贵,细心的人应该也已有如此品味。就像很多人说Fmini已经不再经典了,R系mini才有mini该有的精髓。
不是我们喜欢老车,而是我们年轻时有冲动想拥有的车,它老了……(说多了还是qiong

)。

有的人说这价格买新车多好,每个人需求不一样,我认为都没有对错。总的来说,除了年代带给它的陈旧,略微过时的外观、内饰和缺少一些现代科技辅助配置,整备后它的质感和该有的东西,一样都不少,有的地方甚至是当前同价位新车比不了的。对上口味了就适合你,否则,买辆新车更好。在此也发表下个人建议:如果要想买上了年份的二手车,不建议挑便宜的买或者一上来不看车只砍价,结合车况,一车一价,实际看。同时也要准备一定的整备费用,不能徒有其表,尽量去整备一些影响行驶质感的老化件,体验接近新车的质感才有意义;另外要确保自己有时间和心理准备去应对偶尔可能出现的问题;但是这个过程的乐趣也不少,学习汽车知识,结交朋友。嫌麻烦,也不喜欢自己动动手的,直接买新车吧,用几年就换,一般也不用折腾。

开篇说要结合经历,讲讲用车需求。上面讲的二手车和新车的选择,算是一方面吧。其它的话,想想其实也很简单,没有完美的车,也就没有最适合;也没有一无是处的车,一切都看需求。单身或者小两口用车,小巧的挺好,灵活方便还精致可爱;经常多人乘坐,甚至有老人小孩,空间和舒适性还是要考虑的;多辆车的情况下,满足主要需求外的车,就可以完全按自己喜欢来了;当前每个家庭油车+电动代步车,也是个不错的选择。
外,这辆车开了两年了,换做爱折腾的是你,接下来考虑体验下什么车呢?欢迎留言推荐。(土豪朋友不用给推荐,谢谢了

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~