Тема: Як підігнати svg під таблицю ?
Щоб не комірку розтягувало, а стискало svg під розмір комірки, по висоті.
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → HTML та CSS → Як підігнати svg під таблицю ?
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Щоб не комірку розтягувало, а стискало svg під розмір комірки, по висоті.
покажіть приклад коду, чи шо
var table = document.createElement('table');
table.style.width = '100%';
table.style.height = 'inherit';
table.border = "1";
var tr1 = document.createElement('tr');
var th;
var svg;
var mark;
var coloredText;
for (var i = 0; i < this.leftY.length; i++) {
th = document.createElement('th');
svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
/*svg.style.width = 'auto';
svg.style.height = 'inherit';*/
//svg.setAttributeNS(null, "preserveAspectRatio", "none");
svg.setAttributeNS(null, "display", "block");
/*svg.setAttributeNS(null, "height", "100%");
svg.setAttributeNS(null, "width", "100%");*/
svg.setAttributeNS(null, "viewBox", "0 0 100 100");
mark = document.createElementNS("http://www.w3.org/2000/svg", "circle");
mark.setAttributeNS(null, "cx", 50);
mark.setAttributeNS(null, "cy", 50);
mark.setAttributeNS(null, "r", 50);
mark.setAttributeNS(null, "fill", this.leftY[i].color);
mark.setAttributeNS(null, "stroke", "none");
svg.appendChild(mark);
th.appendChild(svg);
coloredText = document.createElement('span');
coloredText.textContent = this.leftY[i].legend.toString();
coloredText.style.color = this.leftY[i].color;
th.appendChild(coloredText);
tr1.appendChild(th);
}
/*for (var i = 0; i < this.rightY.length; i++) {
th = document.createElement('th');
coloredText = document.createElement('span');
coloredText.textContent = this.rightY[i].legend.toString();
coloredText.style.color = this.rightY[i].color;
th.appendChild(coloredText);
tr1.appendChild(th);
}*/
table.appendChild(tr1);
document.getElementById(this.legendDiv).appendChild(table);
наприклад, так
https://jsfiddle.net/64rmkeu8/
<table>
<tr>
<td>hi there</td>
<td>my friends</td>
<td>how are you</td>
</tr>
<tr>
<td>hi there</td>
<td id="td"><img src="https://media.inkscape.org/media/resources/file/DIGIDOWN034-welded-svg.svg"></td>
<td>how are you</td>
</tr>
<tr>
<td>hi there</td>
<td>my friends</td>
<td>how are you</td>
</tr>
</table>
td {
border: 1px solid grey;
}
#td {
position: relative;
width: 50px;
height: 50px;
}
#td img {
width: 100%;
height: 100%;
}
img - а в нього взагалі теоретично можливо запхати динамічно сгенерований svg, через DOM ? object не підійде як контейнер?
в src img мона запхати data uri, але якшо ви динамічно створюєте svg, то його самого можна запхати в td, ось приклад, майже все так само
https://jsfiddle.net/bdjqmsaf/
Чому
svg.setAttributeNS(null, "height", "inherit");
розтягує svg на весь viewBox, замість того щоб взяти висоту від батьківської комірки ?
мо тому що батьківська комірка не має вказаної висоти?
Атрибути style і class для того є.
<svg style="width: auto; height: 100%;" width="400" height="110">
Атрибути style і class для того є.
<svg style="width: auto; height: 100%;" width="400" height="110">
та ні розтягує, все одно на габарити viewBox
leofun01 написав:Атрибути style і class для того є.
<svg style="width: auto; height: 100%;" width="400" height="110">
та ні розтягує, все одно на габарити viewBox
киньте посилання на https://jsfiddle.net/ з вашим кодом, шоб ми могли то протестувати і глянути, як воно все виглядає повністю
cheappi386 написав:leofun01 написав:Атрибути style і class для того є.
<svg style="width: auto; height: 100%;" width="400" height="110">
та ні розтягує, все одно на габарити viewBox
киньте посилання на https://jsfiddle.net/ з вашим кодом, шоб ми могли то протестувати і глянути, як воно все виглядає повністю
воно там не працює
FakiNyan написав:cheappi386 написав:та ні розтягує, все одно на габарити viewBox
киньте посилання на https://jsfiddle.net/ з вашим кодом, шоб ми могли то протестувати і глянути, як воно все виглядає повністю
воно там не працює
ок
leofun01 написав:Атрибути style і class для того є.
<svg style="width: auto; height: 100%;" width="400" height="110">
та ні розтягує, все одно на габарити viewBox
height: 100%; - це я навів приклад використання.
Ви навіть не пробували встановити ті значення, які вам треба.
Тут приклад з height: 1em;. Все працює.
1em
щось з голови вилетіло, що і така одиниця розміру є
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися