text-align: justify
メニューを均等に配布するために使用しています。このチュートリアルに従うと、完全に機能しています。
ただし、ReactJS を使用してビューを作成すると壊れます。比較はhttp://jsfiddle.net/j7pLprza/1/にあります。これらの 2 つの単純なコンポーネントを使用して、メニューにデータを入力します。
var MenuItem = React.createClass({
render: function() {
return (
<li>
{this.props.title}
</li>
);
}
});
var TopMenus = React.createClass({
render: function() {
return (
<div className="break">
<nav>
<ul>
{this.props.menus.map(function(menu) {
return (<MenuItem title={menu.title} />);
})}
</ul>
</nav>
</div>
);
}
});
調べてみると、アイテムの後の改行と空白をすべて削除する ReactJS が原因だと思い<li>
ます。これにより無効になりtext-align: justify
ます。
AngularJS でも発生します (ただし、add-space-all
ディレクティブを使用して修正できます)。
グーグルした後、私はこの問題だけに達しました: https://github.com/facebook/jsx/issues/19。しかし、私はすぐに道に迷いました。
{'\n'}
やなどの余分なコンテンツを追加しようとしまし{' '}
たが、ReactJS は構文エラーを報告します。
助けてください。ありがとう。
更新 1:
受け入れられた回答に続いて、私のメニューは Chrome Emulator で動作します。しかし、iPhone 5c (Chrome ブラウザ) からアクセスすると、余分なスペースが認識されないような結果になります。
さまざまな組み合わせを試した後、これが機能します:
var TopMenus = React.createClass({
render: function() {
return (
<div className="break">
<nav>
<ul>
{this.props.menus.map(function(menu) {
return [(<MenuItem title={menu.title} />), ' '];
})}
</ul>
</nav>
</div>
);
}
});
の余分なスペースが必要であることに注意してください
。
どちらかが欠けているか、壊れています。
その後、Nexus 7、iPhone 5c (Chrome および Safari) で動作します。ただし、正確な理由はわかりません。知っている方がいましたら、助けてください。
更新 2:
まだバギー。そこでFlex レイアウトに切り替えました。そして、それは超簡単です。例: http://jsfiddle.net/j7pLprza/4/