vertical-alignment - famo.us 中没有文本垂直对齐属性吗?

标签 vertical-alignment famo.us

看起来在所有 famo.us 示例中,他们都使用一个非常大的 lineHeight 属性将表面上的文本垂直对齐到中间,而他们使用 textAlign: "center" 将其水平对齐。如果没有垂直对齐,这似乎是有问题的,因为如果我想要一段文本,行高技巧会把它搞砸。

谢谢!

最佳答案

这应该是一个比实际情况更简单的问题,但由于真实尺寸表面的问题,您可能需要为此解决一个问题。

问题是真实尺寸的曲面无法向修改器报告其高度,以便正确计算给定原点的位置。您必须设置表面的实际高度才能实现真正的居中。

在此示例中,表面根据内容的大小在整个上下文中居中。我对 Surface 进行了子类化,以便我可以重新定义以目标元素作为参数的部署。然后,我设置 surface.state 的大小,以便利用其原点,能够将元素居中。

这些类型的问题很快就会得到解决,但现在必须进行黑客攻击..

这是示例..祝你好运

var Engine            = require('famous/core/Engine');
var Surface           = require('famous/core/Surface');
var StateModifier     = require('famous/modifiers/StateModifier');

function MySurface(options) {
    Surface.apply(this, arguments);
    this._superDeploy = Surface.prototype.deploy
}

MySurface.prototype = Object.create(Surface.prototype);
MySurface.prototype.constructor = MySurface;

MySurface.prototype.deploy = function deploy(target) {
  this._superDeploy(target);
  var size    = this.getSize();
  var width   = size[0] == true ? target.offsetWidth  : size[0] ;
  var height  = size[1] == true ? target.offsetHeight : size[1] ;
  this.state.setSize([width,height]);
};


var context = Engine.createContext();

var lorem = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodoconsequat. Duis aute irure dolor in reprehenderit in voluptate velit essecillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";

var surface = new MySurface({
  size: [200,true],
  content: lorem,
  properties: {
    color: 'white',
    textAlign: 'center',
    backgroundColor: 'green'
  }
});

surface.state = new StateModifier({origin:[0.5,0.5]});

context.add(surface.state).add(surface);

关于vertical-alignment - famo.us 中没有文本垂直对齐属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23342360/

相关文章:

css - 如何将两个 div 水平和垂直居中放置在另一个 div 中?

html - 行高 :0 puts the image in vertical center of button

meteor - 如何在 meteor 应用程序中使用 famo.us CDN 链接?

javascript - Famo-us Surface 内的 Google map 无法在移动设备上拖动

html - 无论是大写字母还是小写字母,都可以在视觉上将单个字母居中

html - 如何删除 flexbox 垂直居中行之间的空间?

css - 如何使垂直列表居中?

javascript - 拖动一个 Famous 表面并让它在 mouseup 上过渡回原点?

javascript - 如何在 famo.us 中关闭一个 View 并显示另一个 View

javascript - Famo.us - 表面创建时触发的事件