GVKun编程网logo

CSS 利用transform达到居中效果(css中的transform)

12

在本文中,我们将为您详细介绍CSS利用transform达到居中效果的相关知识,并且为您解答关于css中的transform的疑问,此外,我们还会提供一些关于angularjs–如何使用transfo

在本文中,我们将为您详细介绍CSS 利用transform达到居中效果的相关知识,并且为您解答关于css中的transform的疑问,此外,我们还会提供一些关于angularjs – 如何使用transformRequest和transformResponse修改$资源的数据?、css transform-origin 的作用说明,小程序 transformOrigin: "50% 100% 0"、css – 为什么“左:50%,transform:translateX(-50%)”水平居中的元素?、css – 我可以使用transform作为transition-property的值吗?的有用信息。

本文目录一览:

CSS 利用transform达到居中效果(css中的transform)

CSS 利用transform达到居中效果(css中的transform)

<body>
    <div class="center">
        ....
    </div>
</body>

让left和top都是50%,这在水平方向上让div的最左与屏幕的最左相距50%,垂直方向上一样,所以再用transform向左(上)平移它自己宽度(高度)的50%,也就达到居中效果了

.center{
    text-align: center;
    background-color: #fff;
    border-radius: 20px;
    width: 300px;
    height: 350px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
}

angularjs – 如何使用transformRequest和transformResponse修改$资源的数据?

angularjs – 如何使用transformRequest和transformResponse修改$资源的数据?

我正在使用符合 JSONAPI标准的API,其中一种格式要求是所有数据(传入和传出)都必须包含在数据对象中。所以我的请求看起来像:
{
  "data": {
    "email": "email@example.com","password": "pass","type": "sessions"
  }
}

我的回答如下:

{
  "data": {
    "user_id": 13,"expires": 7200,"token": "gpKkNpSIzxrkYbQiYxc6us0yDeqrpnRb9Lo1YRMocyXnXbcwXlyedjPZi88yft3y"
  }
}

在我的控制器中,当进行新的会话请求时,我有:

$scope.signin = ->
  session = new Session
    email: $scope.user.email
    password: $scope.user.password

  session.$save()

  console.log session
  console.log session.token
  if not session.token
    alert 'Invalid Login'
  else
    $rootScope.session_token = session.token
    $state.go 'app.dashboard'

我的会话是一个工厂,看起来像:

angular.module('webapp').factory 'Session',[
  '$resource'
  ($resource) ->
    $resource 'http://localhost:9500/v1/sessions',id: '@id',save:
        method: 'POST'
        transformRequest: (data) ->
          result =
            data: JSON.parse JSON.stringify data
          result.data.types = 'sessions'
          result = JSON.stringify result
          result
        transformResponse: (data) ->
          result = JSON.parse data
          a = JSON.parse JSON.stringify result.data
          console.log a
          a

请求是罚款。格式化和解析似乎有效。但是,当我记录它的响应显示为资源,而不是对象。即使服务器返回有效的数据,session.token显示为未定义。

如何修改我的transformResponse来解释这个问题?

我想你想要的是用承诺捕获你的资源回应:
session.$save().$promise.then(function (result) {
    console.log (result);
});

css transform-origin 的作用说明,小程序 transformOrigin:

css transform-origin 的作用说明,小程序 transformOrigin: "50% 100% 0"

css transform-origin 的作用说明,小程序 transformOrigin: "50% 100% 0"

正如名字所写的, transform-origin 就是指定变换的原点。就是一个点。
其中的三个参数值分别代表的是这个点的 xyz轴上的相对位置。

x 轴方向上的位置 50%,y 轴方向上的位置 50%, z 轴方向上的位置 0%,其百分比是相对于这个元素来说的。

origin.png

默认值

css 中的 transform-origin 默认值是 50% 50% 0
小程序中的 wx.createAnimation() 中的默认值也是 50% 50% 0

scaleY.png

当设置为 transform-origin: transform-origin: 50% 100% 0

scaleY-with-origin.png

应用

css 中是这样写的

.stretch {
    transform: scaleY(1.5); // 纵向缩放,原比例是 1
    transform-origin: 50% 50% 0;
    transition: all 0.5s; // 定义动画作用于哪些属性,过渡时间是多少
}

小程序中是这样写的

let animationTree = wx.createAnimation({
  timingFunction: "ease-in-out",
  transformOrigin: "50% 50% 0"
});
animationTree.scaleY(1.05).step({duration: 100});
animationTree.scaleY(1.0).step({duration: 200});

transform-origin: 50% 50% 0 时的动画是这样的:

animate-center.gif

可以看到上图的变换是以树的中间为基点的,而我们需要它以树的最底部为基点变换。
当把变换原点改为 transform-origin: 50% 100% 0 时,才是我们想要的结果:

animate-base.gif

结语

现在知道 transform-origin 的作用了吧。

css – 为什么“左:50%,transform:translateX(-50%)”水平居中的元素?

css – 为什么“左:50%,transform:translateX(-50%)”水平居中的元素?

我最近重构了我的一些CSS,并惊喜地发现一个更简单的方法来水平对齐我绝对定位的元素:
.prompt-panel {
    left: 50%;
    transform: translateX(-50%);
}

这个很棒!即使我的元素的宽度是自动的。但是,我不明白发生了什么事情才能真正奏效。我的假设是,translateX只是一个现代化,更有效的移动元素的手段,但似乎并非如此。

这两个值不应该相互抵消吗?此外,为什么

.prompt-panel {
    left: -50%;
    transform: translateX(50%);
}

没有显示与第一个代码片段相同的结果?

解决方法

CSS left属性基于父元素的大小。 transform属性基于目标元素的大小。

Name: transform

Percentages: refer to the size of bounding Box [of the element to which the style is applied]

http://www.w3.org/TR/css3-transforms/#transform-property

‘top’

Percentages: refer to height of containing block

http://www.w3.org/TR/CSS2/visuren.html#position-props

如果父母的宽度为1000像素,小孩为100像素,浏览器会将您的问题中的规则解释为:

示例1:

.prompt-panel {
    left: 500px;
    transform: translateX(-50px);
}

示例2:

.prompt-panel {
    left: -500px;
    transform: translateX(50px);
}

css – 我可以使用transform作为transition-property的值吗?

css – 我可以使用transform作为transition-property的值吗?

我可以使用transform作为transition-property的值吗?

transition-property: transform;

W3C transition standard不会将变换列为可动画值.

实际上W3C transform standard在Animatable中缺少行:在7.表中的是/否.’transform’属性.

我担心这是合法的还是不合法的.


This stackoverflow answer 建议使用transform作为transition-property的值.

我可以使用0%和100%关键帧获得变换动画,但如果只涉及2个状态,我宁愿转换而不是动画.

解决方法

您必须为每个引擎指定确切的名称.例如,对于Safari和Chrome,您应该编写以下内容:

-webkit-transition-property: -webkit-transform;

这是JSFiddle中的工作示例.注意:我使用了简写转换属性.

我们今天的关于CSS 利用transform达到居中效果css中的transform的分享就到这里,谢谢您的阅读,如果想了解更多关于angularjs – 如何使用transformRequest和transformResponse修改$资源的数据?、css transform-origin 的作用说明,小程序 transformOrigin: "50% 100% 0"、css – 为什么“左:50%,transform:translateX(-50%)”水平居中的元素?、css – 我可以使用transform作为transition-property的值吗?的相关信息,可以在本站进行搜索。

本文标签: