如何从右到左渲染进度元素?

时间:2016-09-11 17:57:14

标签: html css html5 progress-bar

我有一个从左到右显示的进度条。我需要制作另一个相同的风格进度,但是会从右到左显示。

这是我的风格定义:

::-webkit-progress-value

我使用了来自网络的使用let popupTransition = PopupTransition() class func create() -> JopUpViewController { let popup = JopUpViewController() popup.modalPresentationStyle = .OverCurrentContext popup.transitioningDelegate = self.popupTransition return popup } 的示例。

如何从右到左进行渲染?

1 个答案:

答案 0 :(得分:1)

通常,当direction属性从ltr(默认值)更改为rtl时,许多元素都会翻转水平渲染,这代表从右到左(到与从右到左的语言兼容,如阿拉伯语或希伯来语。)

<progress>元素没有区别。只需给CSS一些东西(比如一个特殊的类)并设置它的direction: rtl;

以下是基于您发布的代码的小片段。

/* this is the important bit */
progress.rtl {
  direction: rtl;
}
progress,
progress[role] {
  -webkit-appearance: none;
  appearance: none;
  border: none;
  background-size: auto;
  height: 50px;
  width: 100%;
  padding-top: 10px;
}
progress[value]::-webkit-progress-bar {
  background-color: grey;
  border-radius: 2px;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset;
}
progress[value]::-webkit-progress-value {
  background-image: -webkit-linear-gradient(-45deg, transparent 33%, rgba(0, 0, 0, .1) 33%, rgba(0, 0, 0, .1) 66%, transparent 66%), -webkit-linear-gradient(top, rgba(255, 255, 255, .25), rgba(0, 0, 0, .25)), -webkit-linear-gradient(left, #09c, #f44);
  border-radius: 2px;
  background-size: 35px 20px, 100% 100%, 100% 100%;
}
.valuebar {
  position: relative;
}
.valuebar h3 {
  color: #fff;
  left: 1em;
  line-height: 1;
  position: absolute;
}
<progress value="59" max="100">59%</progress>
<br />
<progress class="rtl" value="59" max="100">59%</progress>

我不知道您的标记是什么,因为您没有发布,但您可能需要调整.valuebar定位。

这是你可以玩的code pen