Как я определяю в HTML или CSS абсолютную минимальную ширину ячейки таблицы

Ну, у меня были проблемы с использованием ICloneable в Silverlight, но мне понравилась идея серализации, я могу серализовать XML, поэтому я сделал это:

static public class SerializeHelper
{
    //Michael White, Holly Springs Consulting, 2009
    //michael@hollyspringsconsulting.com
    public static T DeserializeXML<T>(string xmlData) where T:new()
    {
        if (string.IsNullOrEmpty(xmlData))
            return default(T);

        TextReader tr = new StringReader(xmlData);
        T DocItms = new T();
        XmlSerializer xms = new XmlSerializer(DocItms.GetType());
        DocItms = (T)xms.Deserialize(tr);

        return DocItms == null ? default(T) : DocItms;
    }

    public static string SeralizeObjectToXML<T>(T xmlObject)
    {
        StringBuilder sbTR = new StringBuilder();
        XmlSerializer xmsTR = new XmlSerializer(xmlObject.GetType());
        XmlWriterSettings xwsTR = new XmlWriterSettings();

        XmlWriter xmwTR = XmlWriter.Create(sbTR, xwsTR);
        xmsTR.Serialize(xmwTR,xmlObject);

        return sbTR.ToString();
    }

    public static T CloneObject<T>(T objClone) where T:new()
    {
        string GetString = SerializeHelper.SeralizeObjectToXML<T>(objClone);
        return SerializeHelper.DeserializeXML<T>(GetString);
    }
}
49
задан Tony Meyer 8 March 2009 в 20:47
поделиться

5 ответов

Этот CSS должен быть достаточным:

td { min-width: 100px; }

Однако этому не всегда повинуются правильно (атрибут минимальной ширины) все браузеры (например, IE6 не нравится он много).

Редактирование: Что касается IE6 (и прежде) решение, нет того, которое работает надежно при всех обстоятельствах, насколько я знаю. Используя nowrap HTML-атрибут действительно не достигает желаемого результата, поскольку тот просто предотвращает разрывы строки в ячейке, вместо того, чтобы определить минимальную ширину.

Однако, если nowrap используется в сочетании со свойством width обычной ячейки (таким как использование ширины: 100 пкс), 100 пкс будут действовать как , минимальная ширина и ячейка все еще расширятся с текстом (из-за nowrap). Это - решение далекое от идеального, которое не может быть полностью применено с помощью CSS и, как таковое, было бы утомительно, чтобы реализовать, если у Вас есть много таблиц, Вы хотите применить это к. (Конечно, это все альтернативное решение падает, если Вы хотите иметь динамические разрывы строки в своих ячейках, так или иначе).

60
ответ дан James B 7 November 2019 в 11:45
поделиться

Другой взлом является старым 1x1 прием прозрачного пикселя. Вставьте 1x1 прозрачное изображение gif и установите его ширину в теге изображения к ширине, которую Вы хотите. Это вынудит ячейку быть, по крайней мере, столь же широкой как изображение.

9
ответ дан Michael Haren 7 November 2019 в 11:45
поделиться

что относительно этого css свойства

min-width: 100px

, но это действительно не работает в IE6, если не ошибочный

, если Вы не хотите делать это css способом, я предполагаю, что можно добавить этот атрибут

nowrap="nowrap"

в теге данных таблицы

2
ответ дан Jeffrey04 7 November 2019 в 11:45
поделиться

IE6 обрабатывает ширину как минимальную ширину:

td {
    min-width: 100px;
    _width: 100px;/* IE6 hack */
}

, Если Вы хотите, чтобы IE6 обработал ширину как нормальные браузеры, дайте ему overflow:visible; (не случай здесь)

0
ответ дан 7 November 2019 в 11:45
поделиться

I had some success with:

    min-width: 193px;
    width:auto !important; 
    _width: 193px;  /* IE6 hack */

Based on a combination of Vatos' response and a min-height article here: http://www.dustindiaz.com/min-height-fast-hack/

4
ответ дан 7 November 2019 в 11:45
поделиться