Чтобы скопировать текст с помощью многоточия, когда он переполняет ячейку таблицы, вам нужно будет установить свойство CSS max-width
для каждого класса td
для работы переполнения. Никаких дополнительных div div не требуется
td {
max-width: 100px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
Для гибких макетов; используйте свойство CSS max-width
для определения эффективной минимальной ширины столбца или просто используйте max-width: 0;
для неограниченной гибкости. Кроме того, содержащая таблица будет иметь определенную ширину, обычно width: 100%;
, а столбцы обычно будут иметь свою ширину, заданную как процент от общей ширины
table {
width: 100%;
}
td {
max-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
td.columnA {
width: 30%;
}
td.columnB {
width: 70%;
}
Исторический: для IE 9 (или меньше) вам нужно иметь это в своем HTML, чтобы исправить IE-специфическую проблему рендеринга
<!--[if IE]>
<style>
table {
table-layout: fixed;
width: 100px;
}
</style>
<![endif]-->
Прочитать эту статью: Появление и исчезновение констант в C ++
Вывод типов для автоматических переменных в C ++ 0x по существу такой же, как для шаблона параметры. (Насколько мне известно, единственное различие между ними состоит в том, что тип автоматических переменных можно выводить из списков инициализаторов, в то время как типы параметров шаблона могут не быть.) Каждая из следующих деклараций поэтому объявляет переменные типа int ( never const int):
blockquote>auto a1 = i; auto a2 = ci; auto a3 = *pci; auto a4 = pcs->i;
При выводе типа для параметров шаблона и автоматических переменных удаляются только константы верхнего уровня. Если шаблон функции принимает указатель или ссылочный параметр, сохраняется константа того, что указана или упоминается:
blockquote>template<typename T> void f(T& p); int i; const int ci = 0; const int *pci = &i; f(i); // as before, calls f<int>, i.e., T is int f(ci); // now calls f<const int>, i.e., T is const int f(*pci); // also calls f<const int>, i.e., T is const int
Это поведение - это старые новости, применяемые так, как это делается как на C ++ 98, так и на C ++ 03. Соответствующее поведение для автоматических переменных, конечно, новое для C ++ 0x:
blockquote>auto& a1 = i; // a1 is of type int& auto& a2 = ci; // a2 is of type const int& auto& a3 = *pci; // a3 is also of type const int& auto& a4 = pcs->i; // a4 is of type const int&, too
Поскольку вы можете сохранить cv-квалификатор, если тип является ссылкой или указатель, вы можете сделать:
auto& my_foo2 = GetFoo();
Вместо того, чтобы указывать его как
const
(то же, что и дляvolatile
).Изменить: Что касается причины
auto
выводит возвращаемый типGetFoo()
как значение вместо ссылки (что было вашим основным вопросом, извините), рассмотрите это:const Foo my_foo = GetFoo();
Вышеупомянутое создаст копию, так как
my_foo
ценность. Еслиauto
должен был вернуть ссылку на lvalue, это было бы невозможно.
Foo my_foo = GetFoo();
и чтоGetFoo()
не вернул тип const. Это будет то же самое, что:auto my_foo = GetFoo();
. Если авто также включало ссылку, вы не смогли бы выполнить вышеупомянутое. – someguy 21 August 2011 в 15:15