移动端网页的适配方案解决移动端适配的几种方法

链接:

下面是一些基础概念的讲解,帮助理解各种适配方案实现。

像素:

1、物理像素(设备像素)

屏幕的物理像素,又被称为设备像素,他是显示设备中一个最微小的物理部件。任何设备屏幕的物理像素出厂时就确定了,且固定不变的。

2、设备独立像素

设备独立像素也称为密度无关像素,可以认为是计算机坐标系统中的一个点,这个点代表一个可以由程序使用的虚拟像素(比如说CSS像素),然后由相关系统转换为物理像素。

3、设备像素比

设备像素比简称为dpr,其定义了物理像素和设备独立像素的对应关系

设备像素比 = 物理像素 / 设备独立像素
以iphone6为例:
iphone6的设备宽和高为375pt * 667pt,可以理解为设备的独立像素,而其设备像素比为2.固有设备像素为750pt * 1334pt

通过:window.devicePixelRatio获得。

设备像素比是区别是否是高清屏的标准,dpr大于1时就为高清屏,一般情况下dpr为整数,但是android有些奇葩机型不为整数。

4、css像素

在CSS、JS中使用的一个长度单位。单位px

注:在pc端1物理像素等于1px,但是移动端1物理像素不一定等于1px,1物理像素与px的关系与以下因素有关。(有些视口概念,可以把下面视口看完了再来看)

1、屏幕布局视口大小(下面会讲到)
2、屏幕的分辨率(物理像素)

对于一块屏幕,其物理像素是确定的。视觉视口尺寸是继承的布局视口的,而视觉视口里宽度即是css的px数。故在一块屏上物理像素与px的关系就是物理像素与布局视口的px数的关系。

比如iphone6,期物理像素为750,如果没有设置布局视口时,viewport为980px
此时:1物理像素长度等于980/750px = 1.3067px的长度
由于像素都是点阵的,故1物理像素相当于1.3067px * 1.3067px方格。
当在meta中设置了如下配置时
<meta name="viewport" content="width=device-width">
相当于把布局视口设置为设备的宽度(即上面讲到的设备独立像素), 对于iphone6就是375px。
此时1物理像素长度等于375/750px = 0.5px的长度,故1物理像素相当于0.5px * 0.5px的方格。

视口:

1、布局视口:

在html中一般在meta中的name为viewport字段就是控制的布局视口。布局视口一般都是浏览器厂商给的一个值。在手机互联网没有普及前,网络上绝大部分页面都是为电脑端浏览而做的,根本没有做移动端的适配。随着移动端的发展,在手机上看电脑端的页面已成为非常普及现象。而电脑端页面宽度较大,移动端宽度有限,要想看到整个网页,会有很长的滚动条,看起来非常麻烦。于是浏览器厂商为了让用户在小屏幕下网页也能够显示地很好,所以把布局视口设置的很大,一般在768px ~ 1024px 之间,最常用的宽度就是 980。这样用户就能看到绝大部分内容,并根据具体内容选择缩放。

故布局视口是看不见的,浏览器厂商设置的一个固定值,如980px,并将980px的内容缩放到手机屏内。

布局视口可以通过:

document.documentElement.clientWidth(clientHeight) // 布局视口的尺寸。

2、视觉视口:

浏览器可视区域的大小,即用户看到的网页的区域。(其宽度继承的布局视口宽度)

window.innerWidth(innerHeight) // 视觉视口尺寸

3、理想视口:

布局视口虽然解决了移动端查看pc端网页的问题,但是完全忽略了手机本身的尺寸。所以苹果引入了理想视口,它对设备来说是最理想的布局视口,用户不需要对页面进行缩放就能完美的显示整个页面。最简单的做法就是使布局视口宽度改成屏幕的宽度。

可以通过window.screen.width获取。

<meta name="viewport" content="width=device-width">

移动端到底怎么适配不同的屏幕呢?最简单的方法是设置如下视口:

<meta name="viewport" content="width=device-width,initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">

当使用以上方案定义布局视口时,即布局视口等于理想视口(屏幕宽度),屏幕没有滚动条,不存在高清屏下,字体较小的问题。但是在不同屏幕上,其视觉宽度是不同的,不能简单的将所有的尺寸都设置为px,可能会出现滚动条。小尺寸的可以用px,大尺寸的只能用百分比和弹性布局。

viewport缩放

对于上面的设置,再不同的屏幕上,css像素对应的物理像素具数是不一致的。

在普通屏幕下,dpr=1时,

1个css像素长度对应1个物理像素长度,1个css像素对应1个物理像素。

而在Retina屏幕下,如果dpr=2,

1个css像素长度对应2个物理像素长度,1css像素对应4个物理像素。

此时如果css中写

border: 1px solid red; // 此时1px 对应的宽度是2物理像素的宽度。

而一般现在移动端设计稿都是基于iphone设计的,稿子一般为750px或640px,这正好是iphone6和iphone5的物理像素。在设计稿中,一般有些边框效果,这时边框的线宽为1px,对应的就是1物理像素。而对于iphone5和iphone6,当width=device-width时,css的1px显示出来的是2个物理像素,所以看起来线就比较粗。怎么解决呢?1px边框效果其实有很多hack方法,其中一种就是通过缩放viewport。

initial-scale是将布局视口进行缩放,initial-scale是相对于理想视口的,即initial-scale=1与width=device-width是一样的效果。initial-scale=0.5等效于width= 2倍的device-width,所以设置initial-scale和width都可以改变布局视口的大小。

<meta name="viewport" content="width=device-width,initial-scale=0.5, maximum-scale=0.5, minimum-scale=0.5, user-scalable=no"> 

对于iphone6当添加如上设置后,initial-scale=0.5,即将页面缩小2倍后等于屏幕宽度。

布局视口width:
width / 2 = 375px; width = 750px;

所以此时布局视口为750px,此时1px等于1物理像素。

适配方案:

上面讲了一些基础概念,下面讲具体适配。

对于ui设计师给的一张设计稿,怎么将其还原到页面上?对于不同手机屏幕,其dpr不同,屏幕尺寸也不同,考虑到各种情况,有很多适配方案,所以不同的适配方案,实现方法不同,处理复杂度也不同,还原程度也不同。

方案一:

固定高度,宽度自适应。

这种方案是目前使用较多的方案,也是相对较简单的实现方案:

该方法使用了理想视口:

<meta name="viewport" content="width=device-width,initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">

垂直方向使用固定的值,水平方向使用弹性布局,元素采用定值、百分比、flex布局等。这种方案相对简单,还原度也非常低。

方案二:

固定布局视口宽度,使用viewport进行缩放

如:荔枝FM、网易应用

荔枝的代码:

if(/Android (\d+\.\d+)/.test(navigator.userAgent)){
 var version = parseFloat(RegExp.$1);
 if(version>2.3){
 var phoneScale = parseInt(window.screen.width)/640;
 if(/MZ-M571C/.test(navigator.userAgent)){
 document.write('<meta name="viewport" content="width=640, minimum-scale = 0.5, maximum-scale= 0.5">');
 }else if(/M571C/.test(navigator.userAgent)&&/LizhiFM/.test(navigator.userAgent)){
 document.write('<meta name="viewport" content="width=640, minimum-scale = 0.5, maximum-scale= 0.5">');
 }else{
 document.write('<meta name="viewport" content="width=640, minimum-scale = '+ phoneScale +', maximum-scale = '+ phoneScale +', target-densitydpi=device-dpi">');
 }
 }else{
 document.write('<meta name="viewport" content="width=640, target-densitydpi=device-dpi">');
 }
}else{
 document.write('<meta name="viewport" content="width=640, user-scalable=no, target-densitydpi=device-dpi">');
}
 

网易应用:

var win = window,
 width = 640,
 iw = win.innerWidth || width,
 ow = win.outerHeight || iw,
 sw = win.screen.width || iw,
 saw = win.screen.availWidth || iw,
 ih = win.innerHeight || width,
 oh = win.outerHeight || ih,
 ish = win.screen.height || ih,
 sah = win.screen.availHeight || ih,
 w = Math.min(iw, ow, sw, saw, ih, oh, ish, sah),
 ratio = w / width,
 dpr = win.devicePixelRatio;
 if (ratio = Math.min(ratio, dpr), 1 > ratio) {
 var ctt = ",initial-scale=" + ratio + ",maximum-scale=" + ratio,
 metas = document.getElementsByTagName("meta");ctt += "";
 for (var i = 0, meta; i < metas.length; i++) meta = metas[i], "viewport" == meta.name && (meta.content += ctt)
 }

固定布局视口,宽度设置固定的值,总宽度为640px,根据屏幕宽度动态生成viewport。(设计稿应该是640px的)

<meta name="viewport" content="width=640, minimum-scale = 0.5625, maximum-scale = 0.5625, target-densitydpi=device-dpi">

这种方式布局如荔枝FM的网页宽度始终为640px。缩放比例scale为:

var scale = window.screen.width / 640

设计稿为640px时,正好可以1:1以px来写样式。但是1px所对应的物理像素就不一定是1了。

(window.screen.width * dpr) / 640 // 1px对应的物理像素

 

iphone5.png

移动端网页的适配方案解决移动端适配的几种方法

 

iphone6.png

方案三:

根据不同屏幕动态写入font-size,以rem作为宽度单位,固定布局视口。

如网易新闻:

<meta name="viewport" content="width=device-width,initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">

以640px设计稿和750px的视觉稿,网易这样处理的:

var width = document.documentElement.clientWidth; // 屏幕的布局视口宽度
var rem = width / 7.5; // 750px设计稿将布局视口分为7.5份
var rem = width / 6.4; // 640px设计稿将布局视口分为6.4份

这样不管是750px设计稿还是640px设计稿,1rem 等于设计稿上的100px。故px转换rem时:

rem = px * 0.01;

在750px设计稿上:

75px 对应 0.75rem, 距离占设计稿的10%;
在ipone6上:
width = document.documentElement.clientWidth = 375px;
rem = 375px / 7.5 = 50px;
0.75rem = 37.5px; (37.5/375=10%;占屏幕10%)
 
在ipone5上:
width = document.documentElement.clientWidth = 320px;
rem = 320px / 7.5 = 42.667px;
0.75rem = 32px; (32/320=10%;占屏幕10%)

故对于设计稿上任何一个尺寸换成rem后,在任何屏下对应的尺寸占屏幕宽度的百分比相同。故这种布局可以百分比还原设计图。

移动端网页的适配方案解决移动端适配的几种方法

 

iphone5-2.png

移动端网页的适配方案解决移动端适配的几种方法

 

iphone6-2.png

方案四:

以rem作为宽度单位,动态写入viewport和font-size进行缩放。

根据设置的dpr设置font-size。如:

document.documentElement.style.fontSize = 50 * dpr;
// dpr 为设置的设备像素比。(注意不是设备自身的设备像素比,而是认为设置的dpr)

这种情况下,dpr = 1时,1rem = 50px;

dpr = 2时, 1rem = 100px;

当设计以iphone6为标准,出750px的设计稿时,此时dpr=2,故1rem 等于100px,将图上的尺寸转换为rem非常方便,除以100就行。代码如下:

var scale = 1.0;
var dpr = 1;
var isAndroid = window.navigator.appVersion.match(/android/gi);
var isIPhone = window.navigator.appVersion.match(/iphone/gi);
var devicePixelRatio = window.devicePixelRatio;
// 此处只简单对ios做了伸缩处理,安卓没有做伸缩处理,统一dpr = 1
if ( isIPhone ) {
 scale /= devicePixelRatio;
 dpr *= devicePixelRatio;
}
var viewport = document.getElementById('viewport');
var content = 'initial-scale=' + scale + ', maximum-scale=' + scale + ',minimum-scale=' + scale + ', width=device-width, user-scalable=no';
viewport.setAttribute( 'content', content );
document.documentElement.style.fontSize = 50 * dpr + 'px';
document.documentElement.setAttribute('data-dpr', dpr);

对于该方案,

假设肉眼看到的宽度(视觉宽度):visualWidth,令dpr=1时,其1rem对应的宽度为50.
dpr = 1 时, 1rem = 50px, initial-scale=1, 缩放为1。
visualWidth = 50 * 1 = 50;
dpr = 2 时, 1rem = 100px, initial-scale=0.5, 缩放为0.5。
visualWidth = 100 * 0.5 = 50;
dpr = 3 时, 1rem = 150px, initial-scale=0.3333, 缩放为0.3333。
visualWidth = 150 * 0.3333 = 50;

所以该方案,1rem在所有屏幕上对应的肉眼距离相同,故不同屏幕下,总的rem数不同,大屏下总的rem数大于小屏下,如iphone6下,总宽度为7.5rem,iphone5下,总宽度为6.4rem。故此方案不能百分比还原设计稿,故写样式时,对于大块元素应该用百分比,flex等布局,不能直接用rem。

关于这个方案的详细教程请参考这篇文章传送门

移动端网页的适配方案解决移动端适配的几种方法

 

iphone5-3.png

移动端网页的适配方案解决移动端适配的几种方法

 

iphone6-3.png

方案五:

根据不同屏幕动态写入font-size和viewport,以rem作为宽度单位

将屏幕分为固定的块数10:

var width = document.documentElement.clientWidth; // 屏幕的布局视口宽度
var rem = width / 10; // 将布局视口分为10份

这样在任何屏幕下,总长度都为10rem。1rem对应的值也不固定,与屏幕的布局视口宽度有关。

对于动态生成viewport,他们原理差不多,根据dpr来设置缩放。看看淘宝的:

var devicePixelRatio = window.devicePixelRatio;
var isIPhone = window.navigator.appVersion.match(/iphone/gi);
var dpr,scale;
if (isIPhone) {
 if (devicePixelRatio >=3) {
 dpr = 3;
 } else if (devicePixelRatio >=2) {
 dpr = 2;
 } else {
 dpr = 1;
 }
} else {
 dpr = 1;
}
scale = 1 / dpr;

淘宝只对iphone做了缩放处理,对于android所有dpr=1,scale=1即没有缩放处理。

此方案与方案三相似,只是做了viewport缩放,能百分比还原设计稿。

移动端网页的适配方案解决移动端适配的几种方法

 

iphone5-4.png

移动端网页的适配方案解决移动端适配的几种方法

 

iphone6-4.png

适配中要解决的问题 :

移动端适配最主要的是使在不同屏幕下不用缩放页面就能正常显示整个页面。以上方案都完成了这一需求。其次有几个需求:

1、解决高清屏下1px的问题,其实有很多hack方法,这里只讲了缩放视口。先将布局视口设置为高清屏的物理像素。这样css中1px就是1个物理像素,这样看到的线条才是真正的1px。但是此时视口宽度大于设备的宽度,就会出现滚动条。故对视口进行缩放,使视口宽度缩放到设备宽度。

淘宝团队在处理安卓端的缩放存在很多问题,所以dpr都做1处理,所以安卓端就没有解决1px的问题。

2、在大屏手机中一行看到的段落文字应该比小屏手机的多。

由于淘宝和网易新闻rem都是百分比,故如果用rem一行显示的文字个数应该是相同的。故对于段落文本不能用rem作为单位,应该用px处理,对于不同的dpr下设置不同的字体。

.selector { 
 color: red; 
 font-size: 14px; 
}
[data-dpr="2"] .selector { 
 font-size: 28px; // 14 * 2
} 
[data-dpr="3"] .selector { 
 font-size: 42px; // 14 * 3
}

对于方案四,不管什么情况下,1rem对应的视觉上的宽度都是一样的,而对应的大屏、小屏手机其视觉宽度当然不同,故字体设置为rem单位时,也能满足大屏手机一行显示的字体较多这个需求。

五种方案对比:

上面四种方案对设计稿还原程度是有差别的。

除了方案一和方案四以外,其他方案都是百分比还原设计稿,大屏下元素的尺寸就大。

方案一还原设计稿程度较低,这里不做说明。

方案二做了百分比适配,部分1px适配,没有字体适配。

方案三做了百分比适配,没有1px适配,有字体大小适配。

方案四没有做百分百适配,布局要用百分百和flex布局,做了1px的适配,并且对于段落文字直接可以用rem做单位,不需要做适配。

方案五做了百分比适配,有1px适配,有字体大小适配。

项目中遇到的问题:

在我们项目中方案四和方案五都用过。

方案五在使用中没有遇到什么问题,就是刚开始没有做字体适配都是用的rem,后面加入了字体适配,这种方案设计师相对轻松些,不用考虑在大小屏幕下的布局效果。

方案四时没有跟ui设计师沟通清楚,导致设计师在设计图上一行排了很多交互元素,在小屏下放不下去,又不能简单放百分比(元素里的文字放不下)。所以还是要做动态判断大小屏,做出相应适配。这个方案可能设计师需要考虑的多些,尽量减少一行内的交互元素,当一行交互元素多时要考虑小屏手机怎么适配。

其实对于1px的适配在苹果端很好,在android端各个厂商手机差别太大,适配有很多问题。这是为什么绝大多数方案里都放弃了android端1px适配。不过最近看到很多网站都用了densitydpi=device-dpi这个安卓的私有属性来兼容部分安卓机型,这个属性在新的webkit已经被移除了,使用它主要为了兼容低版本的android系统。

这里大漠老师针对flexible方案进行了改版,兼容了更多的android机型的1px效果。文章传送门

他给了个压缩版的方案,我看了下源码,把它写了一遍,不知道有没有问题,效果是一样的。

var dpr, scale, timer, rem;
var style = document.createElement('style');
dpr = window.devicePixelRatio || 1;
scale = 1 / dpr;
document.documentElement.setAttribute('data-dpr', dpr);
var metaEl = document.createElement('meta');
metaEl.setAttribute('name', 'viewport');
metaEl.setAttribute('content', 'target-densitydpi=device-dpi, initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no');
document.documentElement.firstElementChild.appendChild(metaEl);
document.documentElement.firstElementChild.appendChild(style);
if (980 === document.documentElement.clientWidth) {
 metaEl.setAttribute('content', 'target-densitydpi=device-dpi,width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1');
}
function refreshRem () {
 var c = '}';
 var width = document.documentElement.clientWidth;
 var isPhone = window.navigator.userAgent.match(/Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile/i);
 if (!isPhone && width > 1024) {
 width = 640;
 c = 'max-width:' + width + 'px;margin-right:auto!important;margin-left:auto!important;}';
 }
 window.rem = rem = width / 16;
 style.innerHTML = 'html{font-size:' + rem + 'px!important;}body{font-size:' + parseInt(12 * (width / 320)) + 'px;' + c;;
}
refreshRem();
window.addEventListener('resize', function () {
 clearTimeout(timer);
 timer = setTimeout(refreshRem, 300);
}, false);
window.addEventListener('pageshow', function (e) {
 if (e.persisted) {
 clearTimeout(timer);
 timer = setTimeout(refreshRem, 300);
 }
}, false);

这些方案只是针对绝大部分机型,项目中可能有些特殊机型有特殊问题,需要特殊对待。比如在这篇文章中作者使用flexible在小米max和荣耀8中有问题,需要特殊hack。传送门,我没有这种手机,也没有对此做验证。

对于上面的五种方案,方案五看似是适配最好的,但是当项目中引入第三方插件时可能要一一适配,比如:引入一个富文本,里面设置字体大小的一般都是px,你需要将其一一转换成rem。而对于方案二,可以直接用px做单位来百分百还原设计稿,引入的插件时也不用适配。所以说,具体项目中用哪个方案,其实不光是前端的选择,还要跟设计师讨论下,满足设计需求,选择最适合项目的方案。

本站部分内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如发现本站有涉嫌抄袭侵权/违法违规等内容,请联系我们举报!一经查实,本站将立刻删除。

相关推荐

  • 面膜私信如何选择最适合自己的

    文|小咔 Hello~ 宝儿们,乃们的小咔上线啦! 这几天后台私信有好多让小咔说说自己用的很好的面膜,但素小咔又不在了解肤质的情况下不会给太多推荐的,不过面膜的话相对来说是个例外了,基本上的特点是符合很多人的使用感受的,没有太多的反馈,但是就在前几天小咔不是吐槽了那个OLAY的红片面膜了么, 吐槽它的那个膜布真的太厚了又非常的闷 所以今天小咔大致说一下面膜如…

    2023-06-07
  • 中国黑客基地,中国黑客基地:了解更多信息

    说到黑客组织,因为有着海量的人口数量和相对较高的基础教育质量,另外加上邓公早年间那句“计算机要从娃娃抓起”的名言,造就了计算机领域庞大的群众基础。所以我们国家很多黑客组织在世界范围内都有较大影响力。而最为人所知的就是下面这几个。 中国红客联盟:中国红客联盟又名H.U.C,成立于2000年底,由黑客界传奇人物LION牵头组建,联盟成员包括众多国内知名黑客,鼎盛…

    2023-05-11
  • wasup打招呼怎么回复,打招呼的新词wassup的意思

    继续为大家介绍英文口语表达中那些常见的缩略词,希望对大家有用。 1、wassup 大家从发音上就能知道这是什么的缩略词了,没错,就是“what’s up”,意思是“怎么了/你好(打招呼)”。 例句: Hey man,wassup! 嘿伙计,怎么了?   2、ain’t 这个就是很多表达的缩略词了,比如说“am not/are…

    2023-09-08
  • 程橙是什么电视剧里的人物(程澄扮演的刑侦队队长李蔷是谁)

    程澄扮演的刑侦队队长李蔷,帅气的警服配以干练的短发,一出场就让观众眼前一亮,真的是既有气场又和角色契合。 扮演李蔷的演员名叫程澄,相信看过黄景瑜主演《三生有幸遇上你》的朋友一定能想起她。 在这部剧中程澄扮演的是伍十一(王丽坤饰演)的教官同事兼好闺蜜钱钱,凭借仗义的人设和干练的形象,程澄实实在在地圈了一波粉。 程澄毕业于北京电影学院,现就职于国家话剧院。 尽管…

    2023-08-22 网络资讯
  • 怎么看主播的营业执照,直播传媒公司需要什么许可证

    从事传媒直播需要办理哪些资质?营业范围应该如何填写? 大家好,我是东莞财神姐郭郭。想要注册一家传媒、直播、娱乐、影视、文化、公会等公司,需要具备哪些条件呢?今天,郭郭将根据自己多年的经验,为大家详细解答。注册传媒公司需要先办理营业执照和相关资质。 在注册公司之前,需要先准备好公司的名称、经营范围、注册地址以及法人股东的信息。如果是创业初期,不想租很大的办公室…

    2023-09-08
  • 静态测试的具体技术有哪些,静态测试技术和技能

    一、图文模板 ⒈打开公众号——素菜——管理图文模板 ⒉点击打开,再点新建图文模板 ⒊打开如图,输入模板名称 ⒋再打开素材,复制需要做模板的文章,粘贴到模板正文,如图(因为太长,剪切一部分) ⒌看自己情况适当修改,点保存 ⒍调用模板,下次想用这个模板排版文章的时候直接调用就行 二、页面模板 ⒈公众号首页——打开页面模板 ⒉点击添加模板 ⒊列表模式,封面模式选一…

    2023-09-03 网络资讯
  • 必胜宅急送优惠代码(宅急送免费券)

    新城控股集团(601155.SH)1993年创立于江苏常州,现总部设于上海。经过27年的快速发展,成为跨足住宅地产和商业地产的综合性房地产集团,目前总资产超人民币4000亿元。集团坚持稳健发展战略,以住宅地产和商业地产“双轮驱动”的发展模式,稳中求进,持续创新,努力实现更高质量发展,奔向世界500强。2020年,新城控股将持续夯实各项能力,不断创新产品与服务…

    2023-08-18
  • 梦三国新手卡领取(9周年纪念专属装备时装选择礼盒)

    随着九周年活动的开启,不少玩家都感觉这次活动中虽然花了自己不少银子,但整体来看收获也还算不错。不过,也正是由于这次九周年活动收获不错,甚至可以说大大超越了往期活动的原因,玩家的装备成型速度也提升了不少。这也就使得了,不少玩家在准备做相关活动,或者说做了一部分之后就开始纠结自己应该怎么去做装备了。今天,就为大多数和舞文一样的普通玩家推荐一些九周年活动比较适合的…

    2023-08-23
  • 如何使用卡尔森C25LE实现最佳数据分析结果

    能设计出一代经典的GT车型,那它幕后的设计者肯定是相当杰出的。下图就是著名设计师Rolf Schepp的心血之作,看到这个马形的车标你是不是觉得很熟悉,不!这并不是汉腾哈!而且它的价格可不便宜,要想拥有它,你可是要花上1200万,它就是全球限量25辆的卡尔森Super-GT C25,其中在中国发行7辆。 外观方面,卡尔森C25是在奔驰SL65AMG的基础上改…

    2023-06-07
  • 惠普的高端游戏系列(惠普的游戏本哪款最好)

    惠普VICTUS光影精灵9可以说是7000元价位段性价比最高的机型之一,尤其在一线品牌中,这款机器可以说是非常值得考虑。它搭载了第13代英特尔酷睿i7-13700HX处理器,配置了GeForce RTX 4060笔记本电脑GPU,用来玩游戏可以说是非常不错。那么它的游戏性能表现如何呢?我们实测来看看。 光影精灵9支持独显直连技术,它配备的RTX 4060独显…

    2023-08-21 网络资讯