È possibile utilizzare qualcosa chiamato skew
nella dichiarazione CSS trasformazione:
.fontToTransform {
font-size: 40px;
transform: skewX(15deg);
-webkit-transform: skewX(15deg);
-moz-transform: skewX(15deg);
-o-transform: skewX(15deg);
-ms-transform: skewX(15deg);
}
Questo ti porterà fuori il fastidio di realtà manipolare il carattere stesso. Questo trasformerà l'intero blocco del tuo testo in tho. Potrebbe essere necessario un qualche tipo di convalida per verificare ogni interruzione di riga e separarli ogni volta da nuovi tag. Quindi, poiché questa potrebbe non essere una soluzione reale, potresti prenderla in considerazione se vuoi tagliare il testo più corto (riga singola).
Modifica
Questo è mooolto esagerato ma ecco un esempio di sporco che scopre le singole righe nel blocco di testo e mette ciascuno di essi in una nuova span
, ciò che provoca ogni riga di essere designato separatamente con lo stile skewX
. Qui si va:
CSS
#fontTransform {
font-size: 40px;
margin-right: 30px;
text-align: right;
}
#fontTransform span {
display: block;
transform: skewX(15deg);
-webkit-transform: skewX(15deg);
-moz-transform: skewX(15deg);
-o-transform: skewX(15deg);
-ms-transform: skewX(15deg);
}
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>HTML</title>
<script src="jquery.js" type="text/javascript"></script>
<script src="main.js" type="text/javascript"></script>
<link rel="stylesheet" href="main.css" type="text/css" />
</head>
<body>
<p id="fontTransform">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 commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.</p>
</body>
</html>
main.js
'use strict';
$(document).ready(function(){
var d = document.getElementById('fontTransform');
var t = d.innerHTML;
var w = t.split(' ');
var lines = [];
d.innerHTML = w[0];
var height = d.clientHeight;
var tmp_line = [];
for (var i = 0; i < w.length; i++) {
d.innerHTML = d.innerHTML + ' ' + w[i];
tmp_line[tmp_line.length] = w[i];
if (d.clientHeight > height) {
height = d.clientHeight;
console.log(w[i-1]);
delete tmp_line[tmp_line.length-1];
lines[lines.length] = tmp_line;
tmp_line = [];
}
}
// Destroy d.innerHTML
d.innerHTML = '';
var tmp_html = '';
// Refill the lines within spans
for (var i = 0; i < lines.length-1; i++) {
tmp_html = '<span>';
for (var x = 0; x < lines[i].length-1; x++) {
tmp_html = tmp_html + lines[i][x] + ' ';
}
tmp_html = tmp_html.trim();
tmp_html = tmp_html + '</span>';
d.innerHTML = d.innerHTML + tmp_html;
}
});
Si potrebbe considerare usin g jQuery's resize()
associazione per aggiornare i blocchi di testo con larghezza percentile. Inoltre non sono sicuro di cosa succede con parole molto lunghe che non si adattano a una riga. Non che ciò possa effettivamente accadere, ma tieni presente che non è testato e potrebbe causare la perdita delle parole. Ho davvero bisogno di fare più test per la pubblicazione effettiva.
fonte
2013-03-11 20:42:20
State dichiarando testo-direction: rtl? –
@Diodeus yes I am – shnisaka
http://jsfiddle.net/vPLkE/ direction non funziona –