前端面试题汇总(css基础篇)
1 css sprite是什么,有什么优缺点
概念:将多个⼩图⽚拼接到⼀个图⽚中。
通过 background-position 和元素尺⼨调节需 要显示的背景图案。
**优点:**减少HTTP
请求数,极⼤地提⾼⻚⾯加载速度
增加图⽚信息重复度,提⾼压缩⽐,减少图⽚⼤⼩。
更换⻛格⽅便,只需在⼀张或⼏张图⽚上修改颜⾊或样式即可实现
**缺点:**图⽚合并麻烦
维护麻烦,修改⼀个图⽚可能需要从新布局整个图⽚,样式。
2 display: none;
与 visibility: hidden;
的区别
联系:它们都能让元素不可⻅
区别:
display:none ;
会让元素完全从渲染树中消失,渲染的时候不占据任何空间;
visibility: hidden ;
不会让元素从渲染树消失,渲染师元素继续占据空间,只是内 容不可⻅
display: none ;
是⾮继承属性,⼦孙节点消失由于元素从渲染树消失造成,通过修改
⼦孙节点属性⽆法显示 ;visibility: hidden;
是继承属性,⼦孙节点消失由于继承了hidden ,
通过设置visibility: visible;
可以让⼦孙节点显式 修改常规流中元素的display
通常会造成⽂档重排。修改visibility
属性只会造成 本元素的重绘。 读屏器不会读取display: none ;
元素内容;会读取 visibility: hidden; 元素内容
3 link 与 @import 的区别
link
是HTML
⽅式,@import
是CSS
⽅式link
最⼤限度⽀持并⾏下载,@import
过多嵌套导致串⾏下载,出现FOUC
(⽂档样式 短暂失效)link
可以通过rel="alternate stylesheet"
指定候选样式- 浏览器对
link
⽀持早于@import ,
可以使⽤@import
对⽼浏览器隐藏样式 @import
必须在样式规则之前,可以在css
⽂件中引⽤其他⽂件- 总体来说:
link
优于@import
4 什么是FOUC?如何避免
Flash Of Unstyled Content :
⽤户定义样式表加载之前浏览器使⽤默认样式显示⽂档,⽤户样式加载渲染之后再从新显示⽂档,造成⻚⾯闪烁。 解决⽅法:把样式表放到⽂档的<head>
5 如何创建块级格式化上下⽂(block formatting context),BFC
有什么⽤?
创建规则:
根元素
浮动元素(float
不取值为none
)
绝对定位元素(position
取值为absolute
或fixed
)
display
取值为inline-block 、 table-cell 、 table-caption 、 flex 、 inline-flex
之⼀的元素
overflow
不取值为visible
的元素
作⽤:
可以包含浮动元素
不被浮动元素覆盖
阻⽌⽗⼦元素的margin
折叠
6display、float、position
的关系
如果display
取值为none ,
那么position
和float
都不起作⽤,这种情况下元素不产⽣框否则,如果position
取值为absolute
或者fixed ,
框就是绝对定位的,float
的计 算值为none , display
根据下⾯的表格进⾏调整。 否则,如果float
不是none ,
框是浮动的,display
根据下表进⾏调整否则,如果元素是根元素,display
根据下表进⾏调整其他情况下display
的值为指定值 总结起来:绝对定位、浮动、根元素都需要调整display
7 清除浮动的⼏种⽅式,各⾃的优缺点
⽗级div
定义height
结尾处加空div
标签clear:both
⽗级div
定义伪类 :after
和zoom
⽗级div
定义overflow:hidden
⽗级div
也浮动,需要定义宽度 结尾处加br
标签clear:both
⽐较好的是第3
种⽅式,好多⽹站都这么⽤
8 为什么要初始化CSS
样式?
因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,
如果没对CSS
初始化。
往往会出现浏览器之间的⻚⾯显示差异。 当然,
初始化样式会对SEO
有⼀定的影响,但⻥和熊掌不可兼得,
但⼒求影响最⼩的情况下进行初始化 。
9 css3有哪些新特性
新增各种css
选择器
圆⻆border-radius
多列布局
阴影和反射
⽂字特效text-shadow
线性渐变 旋转transform
CSS3新增伪类有那些?
p:first-of-type
选择属于其⽗元素的⾸个<p>
元素的每个<p>
元素。
p:last-of-type
选择属于其⽗元素的最后<p>
元素的每个<p>
元素。
p:only-of-type
选择属于其⽗元素唯⼀的<p>
元素的每个<p>
元素。
p:only-child
选择属于其⽗元素的唯⼀⼦元素的每个<p>
元素。
p:nth-child(2)
选择属于其⽗元素的第⼆个⼦元素的每个<p>
元素。
:after
在元素之前添加内容,也可以⽤来做清除浮动。
:before
在元素之后添加内容。
:enabled
已启⽤的表单元素。
:disabled
已禁⽤的表单元素。
:checked
单选框或复选框被选中。
10display
有哪些值?说明他们的作⽤
block
转换成块状元素。
inline
转换成⾏内元素。
none
设置元素不可⻅。
inline-block
象⾏内元素⼀样显示,但其内容象块类型元素⼀样显示。
list-item
象块类型元素⼀样显示,并添加样式列表标记。
table
此元素会作为块级表格来显示
inherit
规定应该从⽗元素继承display
属性的值.
11 介绍⼀下标准的CSS的盒⼦模型?
低版本IE的盒⼦模型有什么不同的?
有两种:
IE
盒⼦模型、W3C
盒⼦模型;
盒模型:内容(content)、填充( padding )、边界( margin )、 边框( border );
区 别:IE
的content
部分把border
和padding
计算了进去;
12CSS
优先级算法如何计算?
优先级就近原则,同权重情况下样式定义最近者为准 载⼊样式以最后载⼊的定位为准
优先级为:!important > id > class > tag ; !important
⽐ 内联优先级⾼
13 对BFC
规范的理解?
它决定了元素如何对其内容进⾏定位,
以及与其他元素的关系和相互作⽤ .
14 谈谈浮动和清除浮动
浮动的框可以向左或向右移动,直到他的外边缘碰到包含框或另⼀个浮动框的边框为⽌。
由于浮动框不在⽂档的普通流中,所以⽂档的普通流的块框表现得就像浮动框不存在⼀样。
浮动的块框会漂浮在⽂档普通流的块框上
15position
的值,relative
和absolute
定位原点是
absolute
:⽣成绝对定位的元素,相对于static
定位以外的第⼀个⽗元素进⾏定位
fixed
:⽣成绝对定位的元素,相对于浏览器窗⼝进⾏定位
relative
:⽣成相对定位的元素,相对于其正常位置进⾏定位
static
默认值。没有定位,元素出现在正常的流中
inherit
规定从⽗元素继承position
属性的值 .
16display:inline-block
什么时候不会显示间隙?
移除空格 使⽤margin
负值
使⽤font-size:0
letter-spacing
word-spacing
17PNG\GIF\JPG
的区别及如何选
GIF
8
位像素,256
⾊
⽆损压缩
⽀持简单动画
⽀持boolean
透明
适合简单动画
JPEG
颜⾊限于256
有损压缩 可控制压缩质量 不⽀持透明 适合照⽚。
PNG
有PNG8
和truecolor PNG
PNG8
类似GIF
颜⾊上限为 256 ,
⽂件⼩,⽀持 alpha
透明度,⽆动画 适合图标、背景、按钮18
⾏内元素float:left
后是否变为块级元素? ⾏内元素设置成浮动之后变得更加像是inline-block
(⾏内块级元素,设置成这个属性的元素会同时拥有⾏内和块级的特性,最明显的不同是它的默认宽度不是100%
),这时候给⾏内元素设置 padding-top
和padding-bottom
或者width 、 height
都是有效果的
19 在⽹⻚中的应该使⽤奇数还是偶数的字体?为什么呢?
偶数字号
相对更容易和web
设计的其他部分构成⽐例关系。
20 ::before 和 :after中双冒号和单冒号 有什么区别?解释⼀下这2个 伪元素的作⽤
单冒号( : )
⽤于CSS3
伪类,双冒号( :: )
⽤于CSS3
伪元素 ⽤于区分伪类和伪元素
21 如果需要⼿动写动画,你认为最⼩时间间隔是多久,为什么?
多数显示器默认频率是 60Hz ,
即1
秒刷新60
次,所以理论上最⼩间隔为
1/60*1000ms = 16.7ms
22 CSS合并⽅法
避免使⽤ @import
引⼊多个 css
⽂件,可以使⽤ CSS
⼯具将CSS
合并为⼀个CSS
⽂ 件,例如使⽤ Sass\Compass
等
23 CSS不同选择器的权重(CSS层叠的规则)
!important
规则最重要,⼤于其它规则 ⾏内样式规则,加1000
对于选择器中给定的各个ID
属性值,加 100
对于选择器中给定的各个类属性、属性选择器或者伪类选择器,加10
对于选择其中给定的各个元素标签选择器,加1
如果权值⼀样,则按照样式规则的先后顺序来应⽤,顺序靠后的覆盖靠前的规则 24
列出你所知道可以改变⻚⾯布局的属性
position 、 display 、 float 、 width 、 height 、 margin 、 padding 、 top 、 left 、 right 、
25 CSS在性能优化⽅⾯的实践
css
压缩与合并、Gzip
压缩
css
⽂件放在 head
⾥、不要⽤@import
尽量⽤缩写、避免⽤滤镜、合理使⽤选择器
26 CSS3动画(简单动画的实现,如旋转等)
依靠CSS3
中提出的三个属性:transition 、 transform 、 animation
transition :
定义了元素在变化过程中是怎么样的,包含transition-property 、
transition-duration 、 transition-timing-function 、 transition-delay 。
transform
:定义元素的变化结果,包含rotate 、 scale 、 skew 、 translate 。
animation
:动画定义了动作的每⼀帧(@keyframes
)有什么效果,包括 animation-name , animation-duration 、 animation-timing-function 、 animation-delay 、 animation-iteration-count 、 animation-direction
27base64
的原理及优缺点
优点可以加密,减少了 HTTTP 请求
缺点是需要消耗 CPU 进⾏编解码
28 ⼏种常⻅的CSS布局
流体布局
.left {
float: left;
width: 100px;
height: 200px;
background: red; }
.right {
float: right;
width: 200px;
height: 200px;
background: blue; }
.main {
margin-left: 120px;
margin-right: 220px;
height: 200px;
background: green; }
<div class="container">
<div class="left"></div>
<div class="right"></div>
<div class="main"></div>
</div>
圣杯布局
.container {
margin-left: 120px;
margin-right: 220px; }
.main {
float: left;
width: 100%;
height:300px;
background: green; }
.left {
position: relative;
left: -120px;
float: left;
height: 300px;
width: 100px;
margin-left: -100%;
background: red; }
.right {
position: relative;
right: -220px;
float: right;
height: 300px;
width: 200px;
margin-left: -200px;
background: blue; }
<div class="container">
<div class="main">
</div>
<div class="left">
</div>
<div class="right">
</div>
</div>
双⻜翼布局
.content {
float: left;
width: 100%; }
.main {
height: 200px;
margin-left: 110px;
margin-right: 220px;
background: green; }
.main::after {
content: '';
display: block;
font-size:0;
height: 0;
zoom: 1;
clear: both; }
.left {
float:left;
height: 200px;
width: 100px;
margin-left: -100%;
background: red; }
.right {
float: right;
height: 200px;
width: 200px;
margin-left: -200px;
background: blue; }
<div class="content">
<div class="main">
</div>
</div>
<div class="left">
</div>
<div class="right">
</div>
29 stylus/sass/less
区别 均具有“变量”、“混合”、“嵌套”、“继承”、“颜⾊混合”五⼤基本特性
Scss
和LESS
语法较为严谨,LESS
要求⼀定要使⽤⼤括号“{}”,
Scss
和Stylus
可 以通过缩进表示层次与嵌套关系
Scss
⽆全局变量的概念,LESS
和 Stylus
有类似于其它语⾔的作⽤域概念。
Sass
是基于Ruby
语⾔的,⽽LESS
和Stylus
可以基于 NodeJS NPM
下载相应库后 进⾏编译;
30 postcss
的作⽤
可以直观的理解为:它就是⼀个平台。为什么说它是⼀个平台呢?因为我们直接⽤它,感觉不能⼲什么事情,但是如果让⼀些插件在它上⾯跑,那么将会很强⼤
PostCSS
提供了⼀个解析器,它能够将 CSS
解析成抽象语法树
通过在PostCSS
这个平台上,我们能够开发⼀些插件,来处理我们的 CSS
,⽐如热⻔ 的:autoprefixer
postcss
可以对sass
处理过后的css
再处理 最常⻅的就是autoprefixer
31css
样式(选择器)的优先级
计算权重确定
!important
内联样式 后写的优先级⾼
32 ⾃定义字体的使⽤场景
宣传/品牌/ banner 等固定⽂案
字体图标
33 如何美化CheckBox
<label>
属性for
和 id
隐藏原⽣的<input>
:checked + <label>
34 伪类和伪元素的区别
伪类表状态
伪元素是真的有元素
前者单冒号,后者双冒号
35 base64 的使⽤
⽤于减少HTTP
请求
适⽤于⼩图⽚
base64
的体积约为原图的4/3
36 ⾃适应布局
思路:
左侧浮动或者绝对定位,然后右侧margin
撑开
使⽤<div>
包含,然后靠负margin
形成 bfc
使⽤flex
37 请⽤CSS写⼀个简单的幻灯⽚效果⻚⾯
知道是要⽤CSS3 。
使⽤animation
动画实现⼀个简单的幻灯⽚效果。
/**css**/
.ani{
width:480px;
height:320px;
margin:50px auto;
overflow: hidden;
box-shadow:0 0 5px rgba(0,0,0,1);
background-size: cover;
background-position: center;
-webkit-animation-name: "loops";
-webkit-animation-duration: 20s;
-webkit-animation-iteration-count: infinite; }
@-webkit-keyframes "loops" {
0% {
background:url(http://d.hiphotos.baidu.com/image/w%3D400/sign=c01e6
}
25% {
background:url(http://b.hiphotos.baidu.com/image/w%3D400/sign=edee1
}
50% {
background:url(http://b.hiphotos.baidu.com/image/w%3D400/sign=937da
}
75% {
background:url(http://g.hiphotos.baidu.com/image/w%3D400/sign=7d375
}
100% {
background:url(http://c.hiphotos.baidu.com/image/w%3D400/sign=cfb23
} }
38 什么是外边距重叠?重叠的结果是什么?
外边距重叠就是margin-collapse
在CSS
当中,相邻的两个盒⼦(可能是兄弟关系也可能是祖先关系)的外边距可以结合成。
⼀个单独的外边距。这种合并外边距的⽅式被称为折叠,并且因⽽所结合成的外边距称为 折叠外边距。 折叠结果遵循下列计算规则:
两个相邻的外边距都是正数时,折叠结果是它们两者之间较⼤的值。
两个相邻的外边距都是负数时,折叠结果是两者绝对值的较⼤值。
两个外边距⼀正⼀负时,折叠结果是两者的相加的和。39 rgba()
和opacity
的透明效果有什么不同?
rgba()
和 opacity
都能实现透明效果,但最⼤的不同是 opacity
作⽤于元素,以及元 素内的所有内容的透明度, ⽽rgba()
只作⽤于元素的颜⾊或其背景⾊。(设置 rgba
透明的元素的⼦元素不会继承 透明效果!)
40 css中可以让⽂字在垂直和⽔平⽅向上重叠的两个属性是什么?
垂直⽅向:line-height
⽔平⽅向:letter-spacing
41 如何垂直居中⼀个浮动元素?
/**⽅法⼀:已知元素的⾼宽**/
#div1{
background-color:#6699FF;
width:200px;
height:200px;
position: absolute; //⽗元素需要相对定位
top: 50%;
left: 50%;
margin-top:-100px ; //⼆分之⼀的height,width
margin-left: -100px; }
/**⽅法⼆:**/
#div1{
width: 200px;
height: 200px;
background-color: #6699FF;
margin:auto;
position: absolute; //⽗元素需要相对定位
left: 0;
top: 0;
right: 0;
bottom: 0; }
如何垂直居中⼀个 <img> ?(
⽤更简便的⽅法。)
#container /**<img>的容器设置如下**/
{
display:table-cell;
text-align:center;
vertical-align:middle; }
42 px和em的区别
px
和em
都是⻓度单位,区别是px
的值是固定的,指定是多少就是多少,计算⽐较容易。em
得值不是固定的,并且em
会继承⽗级元素的字体⼤⼩。 浏览器的默认字体⾼都是 16px 。
所以未经调整的浏览器都符合:1em=16px 。
那么12px=0.75em , 10px=0.625em 。
43 Sass、LESS
是什么?⼤家为什么要使⽤他们?
他们是CSS
预处理器。他是CSS
上的⼀种抽象层。他们是⼀种特殊的语法/语⾔编译成CSS 。
例如Less
是⼀种动态样式语⾔. 将CSS
赋予了动态语⾔的特性,如变量,继承,运算, 函 数. LESS
既可以在客户端上运⾏ (⽀持IE 6+ , Webkit , Firefox
),也可⼀在服务端 运⾏ (借助Node.js
)
为什么要使⽤它们? 结构清晰,便于扩展。 可以⽅便地屏蔽浏览器私有语法差异。这个不⽤多说,封装对- 浏览器语法差异的重复处理,减少⽆意义的机械劳动。 可以轻松实现多重继承。 完全兼容CSS
代码,可以⽅便地应⽤到⽼项⽬中。LESS
只- 是在 CSS
语法上做了扩展, 所以⽼的 CSS
代码也可以与LESS
代码⼀同编译
44 知道css
有个content
属性吗?有什么作⽤?有什么应⽤?
css的 content 属性专⻔应⽤在 before/after 伪元素上,⽤于来插⼊⽣成内容。最常⻅的应⽤是利⽤伪类清除浮动。
/*
*⼀种常⻅利⽤伪类清除浮动的代码**/
.clearfix:after {
content:"."; //这⾥利⽤到了content属性
display:block;
height:0;
visibility:hidden;
clear:both; }
.clearfix {
*zoom:1;
}
45 ⽔平居中的⽅法
元素为⾏内元素,设置⽗元素 text-align:center
如果元素宽度固定,可以设置左右 margin 为 auto ; 如果元素为绝对定位,设置⽗元素 position 为 relative ,元素设left:0;right:0;margin:auto;
使⽤ flex-box 布局,指定 justify-content 属性为center
display 设置为 tabel-ceil
46 垂直居中的⽅法
将显示⽅式设置为表格,display:table-cell ,
同时设置vertial-align:middle
使⽤flex
布局,设置为align-item:center
绝对定位中设置bottom:0,top:0 ,
并设置margin:auto
绝对定位中固定⾼度时设置top:50%,margin-top
值为⾼度⼀半的负值 ⽂本垂直居中设置line-height
为 height
值。
47 如何使⽤CSS
实现硬件加速?
硬件加速是指通过创建独⽴的复合图层,让GPU
来渲染这个图层,从⽽提⾼性 能, ⼀般触发硬件加速的 CSS
属性有 transform 、 opacity 、 filter ,
为了避免2D
动画在开始和结束的时候的repaint
操作,⼀般使⽤ tranform:translateZ(0)
48 重绘和回流(重排)是什么,如何避免?
DOM
的变化影响到了元素的⼏何属性(宽⾼),浏览器重新计算元素的⼏何属性,其他元素 的⼏何属性和位置也会受到影响,浏览器需要重新构造渲染树,这个过程称为重排,浏览器将受 到影响的部分 重新绘制到屏幕上的过程称为重绘。引起重排的原因有 添加或者删除可⻅的DOM
元素,元素位置、尺⼨、内容改变, 浏览器⻚⾯初始化,
浏览器窗⼝尺⼨改变,重排⼀定重绘,重绘不⼀定重排, 减少重绘和重排的⽅法: 不在布局信息改变时做DOM
查询 使⽤cssText
或者 className
⼀次性改变属性使⽤ fragment
对于多次重排的元素,如动画,使⽤绝对定位脱离⽂档流,让他的改变不影响到其他元素
49 说⼀说css3的animation
css3
的 animation
是css3
新增的动画属性,这个css3
动画的每⼀帧是通过@keyframes
来声明的,keyframes
声明了动画的名称,通过from 、 to
或者是百分⽐来定义 每⼀帧动画元素的状态,通过 animation-name
来引⽤这个动画,同时css3
动画也可以定 义动画运⾏的时⻓、动画开始时间、动画播放⽅向、动画循环次数、动画播放的⽅式, 这些相关的动画⼦属性有:animation-name
定义动画名、animation-duration
定义 动画播放的时⻓、 animation-delay
定义动画延迟播放的时间、 animation-direction
定义 动画的播放⽅向、animation-iteration-count
定义播放次数、
animation-fill-mode
定义动画播放之后的状态、animation-play-state
定义播放状 态,如暂停运⾏等、animation-timing-function
定义播放的⽅式,如恒速播放、艰涩播放等。
50 左边宽度固定,右边⾃适应
左侧固定宽度,右侧⾃适应宽度的两列布局实现html
结构在外层div
(类名为outer
)的div
中,有两个⼦ div
,类名分别为
left
和 right
,其中left
为固定宽度,⽽right
为⾃适应宽度
⽅法1: 左侧div
设置成浮动:float: left,
右侧div
宽度会⾃拉升适应
<div class="outer">
<div class="left">固定宽度</div>
<div class="right">⾃适应宽度</div>
</div>
⽅法2:对右侧:div
进⾏绝对定位,然后再设置right=0,
即可以实现宽度⾃适应
绝对定位元素的第⼀个⾼级特性就是其具有⾃动伸缩的功能,当我们将width
设置为auto
的时候(或者不设置,默认为auto
),绝对定位元素会根据其 left
和right
⾃动伸缩其⼤⼩
.outer {
width: 100%;
height: 500px;
background-color: yellow; }
.left {
width: 200px;
height: 200px;
background-color: red;
float: left; }
.right {
height: 200px;
background-color: blue; }
.outer {
width: 100%;
height: 500px;
background-color: yellow;
position: relative; }
.left {
width: 200px;
height: 200px;
background-color: red; }
.right {
height: 200px;
background-color: blue;
position: absolute;
left: 200px;
top:0;
right: 0; }
⽅法3:将左侧div进⾏绝对定位,然后右侧div设置margin-left: 200px
⽅法4:使⽤flex布局
51 两种以上⽅式实现已知或者未知宽度的垂直⽔平居中
.outer {
width: 100%;
height: 500px;
background-color: yellow;
position: relative; }
.left {
width: 200px;
height: 200px;
background-color: red;
position: absolute; }
.right {
height: 200px;
background-color: blue;
margin-left: 200px; }
.outer {
width: 100%;
height: 500px;
background-color: yellow;
display: flex;
flex-direction: row; }
.left {
width: 200px;
height: 200px;
background-color: red; }
.right {
height: 200px;
background-color: blue;
flex: 1; }
/** 1 **/
.wraper {
position: relative;
.box {
position: absolute;
top: 50%;
left: 50%;
width: 100px;
height: 100px;
margin: -50px 0 0 -50px;
} }
/** 2 **/
.wraper {
position: relative;
.box {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
} }
/** 3 **/
.wraper {
.box {
display: flex;
justify-content:center;
align-items: center;
height: 100px;
} }
/** 4 **/
.wraper {
display: table;
.box {
display: table-cell;
vertical-align: middle;
} }
52 如何实现⼩于12px的字体效果
transform:scale()
这个属性只可以缩放可以定义宽⾼的元素,⽽⾏内元素 是没有宽⾼的,我们可以加上⼀个display:inline-block ;
css
的属性,可以缩放⼤⼩。
每天一句中文式外语
俄语
1. Где справочное бюро?
(各界 司普拉啊瓦奇那也 必有落)
问讯处在哪里?
2. Я хочу утвердить обратный билет.
(亚 哈球 乌特了极其 阿布拉特内衣 壁列特)
我想确认回程机票。
3. Когда самолёт долетит до Алма-Аты(Ташкента)?
(嘎疙瘩 萨马料特 打猎吉特 大 阿尔马啊得[大使该恩达])
飞机什麽时候到达阿拉木图(塔什干)?
4. Где ведёт сдача вещей в богаж?
(各界 围剿特 自大卡 维协议 无 把嘎是)
在那办理行李托运手续?
5. Где взять посадочную карточку?
(各界物资压气 巴萨大气努油 嘎了大气股)
在那领登机牌?
6. Когда подниматься на самолёт?
(嘎疙瘩 把的你吗擦 那 萨马料特)
什麽时候登机?
7. Где продаётся перронный билет?
(各界 普拉打药特 别老内衣 壁列特)
哪儿售站台票?
8. Я хочу купить билет в мягкий вагон в Урумчи.
(亚 哈球 鼓荸荠 壁列特 无 米啊合额给以 瓦国 无 乌鲁木齐)
我想买一张去乌鲁木齐的软卧车票。
9. С какого перрона мы поднимся в поезд?
(四 嘎国瓦 别老那 没 把的你目下 无 报业司特)
我们从那一个站台上车呢?