diff --git a/core/includes/theme.inc b/core/includes/theme.inc index f98df80..7136416 100644 --- a/core/includes/theme.inc +++ b/core/includes/theme.inc @@ -2421,20 +2421,13 @@ function template_preprocess_field(&$variables, $hook) { // Add default CSS classes. Since there can be many fields rendered on a page, // save some overhead by calling strtr() directly instead of // drupal_html_class(). - $variables['entity_type_css'] = strtr($element['#entity_type'], '_', '-'); - $variables['field_name_css'] = strtr($element['#field_name'], '_', '-'); - $variables['field_type_css'] = strtr($element['#field_type'], '_', '-'); - $variables['attributes']['class'] = array( - 'field', - 'field-' . $variables['entity_type_css'] . '--' . $variables['field_name_css'], - 'field-name-' . $variables['field_name_css'], - 'field-type-' . $variables['field_type_css'], - 'field-label-' . $element['#label_display'], - ); - // Add a "clearfix" class to the wrapper since we float the label and the - // field items in field.module.css if the label is inline. + $variables['attributes']['class']['entity_type_css'] = strtr($element['#entity_type'], '_', '-'); + $variables['attributes']['class']['field_name_css'] = strtr($element['#field_name'], '_', '-'); + $variables['attributes']['class']['field_type_css'] = strtr($element['#field_type'], '_', '-'); + + // Add the label position just in case that the label display is inline. if ($element['#label_display'] == 'inline') { - $variables['attributes']['class'][] = 'clearfix'; + $variables['attributes']['class']['label_position'] = 'field-label-' . $element['#label_display']; } static $default_attributes; diff --git a/core/modules/system/css/system.theme.css b/core/modules/system/css/system.theme.css index f397a5a..8a3bbc8 100644 --- a/core/modules/system/css/system.theme.css +++ b/core/modules/system/css/system.theme.css @@ -626,6 +626,11 @@ table tr.error { float: right; padding-left: 0.5em; } +.field-label-inline:after { + content: ""; + display: table; + clear: both; +} /* Form display */ form .field-edit-link { diff --git a/core/modules/system/templates/field.html.twig b/core/modules/system/templates/field.html.twig index a0d527a..4574211 100644 --- a/core/modules/system/templates/field.html.twig +++ b/core/modules/system/templates/field.html.twig @@ -16,20 +16,28 @@ * - field.html.twig * * Available variables: - * - attributes: HTML attributes for the containing element. * - label_hidden: Whether to show the field label or not. * - title_attributes: HTML attributes for the title. * - label: The label for the field. * - content_attributes: HTML attributes for the content. * - items: List of all the field items. * - item_attributes: List of HTML attributes for each item. + * - attributes: HTML attributes for the containing element. + * - class: CSS Styles. + * - field_name_css: The field name in a CSS friendly string. + * - field_type_css: The field type in a CSS friendly string. + * - label_position: The position of the label in relation to the field value. * * @see template_preprocess_field() * * @ingroup themeable */ #} - +{% set cssclass %} + field field-{{attributes.class.entity_type_css}}--{{attributes.class.field_name_css}} field-name-{{attributes.class.field_name_css}} field-type-{{attributes.class.field_type_css}} +{% endset %} + +
{% if not label_hidden %}
{{ label }}: 
{% endif %}